6.进制
1038字约3分钟
2024-12-02
进制
进制转换图
//二进制,以 0b 开头
int a = 0b1010;
//十进制,就是正常数
int b = 1010;
//八进制,以 0 开头
int c = 01010;
//十六进制,以 0x 开头
int d = 0x10101;
System.out.println("a=" + a);//输出为 a=10,二进制转十进制
System.out.println("b=" + b);//输出为 b=1010
System.out.println("c=" + c);//输出为 c=520,八进制转十进制
System.out.println("d=" + d);//输出为 d=65793,十六进制转十进制
公式1
2进制转10进制
从最右边(低位)开始,将每个位上的数提取出来,乘以2的(位数减1)次方,然后求和;
例:将二进制0b1011转为10进制
在进制中位数是从右往左开始数的;所以0b1011的第一位数就是1(也就是最右边的数),第二位是1,第三位是0,第四位是1,然后带入公式(从最右边(低位)开始,将每个位上的数提取出来,乘以2的(位数减1)次方,然后求和)
0b1011 = 1乘以2的(1减1)次方 + 1乘以2的(2减1)次方 + 0乘以2的(3减1)次方 + 1乘以2的(4减1)次方 = 11
所以二进制0b1011转十进制的结果为 11
8进制转10进制
从最右边(低位)开始,将每个位上的数提取出来,乘以8的(位数减1)次方,然后求和;
例:将八进制0234转为十进制
首先将每个位上的数提取出来,第一位是4,第二位是3,第三位是2,注意0234中的0是八进制的特征
然后载入公式(从最右边(低位)开始,将每个位上的数提取出来,乘以8的(位数减1)次方,然后求和;)
0234 = 4乘以8的(1减1)次方 + 3乘以8的(2减1)次方 + 2乘以8的(3减1)次方 = 156
16进制转10进制
从最右边(低位)开始,将每个位上的数提取出来,乘以16的(位数减1)次方,然后求和;
例:将十六进制0x23A转为十进制
首先将每个位上的数提取出来,第一位是A(在十六进制中A等于10),第二位是3,第三位是2
然后带入公式(从最右边(低位)开始,将每个位上的数提取出来,乘以16的(位数减1)次方,然后求和;)
0x23A = 10乘以16的(1减1)次方 + 3乘以16的(2减1)次方 + 2乘以16的(3减1)次方 = 570
公式2
10进制转2进制
将该数不断的除以2,直到除不尽,然后将每步得到的余数倒过来,就是对应的二进制数
余数从最底下开始写,然后就得到 100010 ,这就是十进制34的二进制数
10进制转8进制
将该数不断的除以8,直到除不尽,然后将每步得到的余数倒过来,就是对应的八进制数
10进制转16进制
将该数不断的除以16,直到除不尽,然后将每步得到的余数倒过来,就是对应的十六进制数
公式3
2进制转8进制
2进制转16进制
图片中的o表示的是0,图片中写错了
公式4
8进制转2进制
16进制转2进制
十六进制数转二进制数,将每一位数转换为二进制,而且转换的二进制数是四位的,在将转换好的二进制数组合起来就是转换好的二进制数