众所周知,计算机底层都是用二进制数做运算,但我们生活中用到的最多的却是十进制,当然还有八进制与十六进制。日常生活中进行进制转换时,都是一些繁琐重复的过程,现在,我们可以用JAVA语言中最原始的代码实现这一功能!
在看代码之前,我们先来看看进制的基本概念。
****二进制****
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
***八进制***
八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。
***十六进制***
十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。
进制转换的方法
十进制—>二进制
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。
十进制—>八进制
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。
十进制—>十六进制
10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
了解了基本概念与思想后,现在就来看看如何用最原始的代码实现上述功能吧!
/*
十进制转换为二进制、八进制、十六进制
1、思路:1、建立一个十六进制的字码表,用数组表示,数组的脚标刚好对应每个元素值
2、每次除以被转数的基数取余数,相当于每次和1、7或15做与运算,之后做右移1、3或4位动作,依照此过程重复进行,直到被转换数为零
3、每次得出的值存放到一个数组中
4、对数组进行翻转遍历即可得出被转换后的数值
*/
class
Switch
{
public static void main(String[] args)
{
toHex(60);//输出3C
}
//十进制转换为二进制
public static void toBin(int num)
{
trans(num,1,1);
}
//十进制转换为八进制
public static void toOctal(int num)
{
trans(num,7,3);
}
//十进制转换为十六进制
public static void toHex(int num)
{
trans(num,15,4);
}
//定义一个通用的转换方法
public static void trans(int num,int base,int move)
{
int temp = 0;
//定义一个临时存放数组
char arr[] = new char[32];
int post = arr.length;
//定义一个字码表
char array[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while (num != 0)
{
temp = num & base;
num = num >>> move;
arr[--post] = array[temp];
}
for (int j = post;j < arr.length ; j ++)
{
System.out.print(arr[j]);
}
}
}
Ps:代码中如有错误,欢迎各位指正!谢谢
最后
以上就是高兴电脑最近收集整理的关于代码实现十进制与其他进制之间的转换的全部内容,更多相关代码实现十进制与其他进制之间内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复