1、 二进制转换为八进制
方法:我们通常使用 421 的方法来标记,从二进制转换为八进制;
首先我们先将二进制数值分成三位字段,从右往左,若左边不够三位可用零来填充;
然后在每一段上面从左往右分别标记421 ,将是1的对应的421 的值相加,再将每段得到的相加的结果相接,即可获得 八进制数值。
如:(110 101 110 010)2 =(6562)8
即:(4+2)+(4+1)+(4+2)+(2)=(6 + 5 + 6 + 2) 即为:6562
2、二进制转换为十进制
1)方法:在二进制数字上,从右往左依次记为2的次方,次方是从0开始,直到最左数字;
将二进制数字中的标为1 的上面的2的次方相加,获得的结果则为十进制结果。
如:(111010)2 = (58)10 即:2 +(2*2*2) + (2*2*2*2) +(2*2*2*2*2)=58
2)小数:(11001.101)
整数部分: 下面的出现的2(x)表示的是2的x次方的意思
1*2(4)+1*2(3)+0*2(2)+0*2(1)+1*2(0)=25
小数部分:
1*2(-1)+0*2(-2)+1*2(-3)=0.625
所以:(11001.101)(二)=(25.625)(
3、二进制转换为十六进制
方法:我们通常使用 8421 的方法来标记,从二进制转换为十六进制;
首先我们先将二进制数值分成四位字段,从右往左,若左边不够四位可用零来填充;
然后在每一段上面从左往右分别标记8421 ,将是1的对应的8421的值相加,再将每段得到的相加的结果相接,即可获得十六进制数值。
如:(1111 1101 1010 0101 1001 1011)2 =(FDA59B)16
即:(8+4+2+1)+(8+4+1)+(8+2)+(4+1)+(8+1)+(8+2+1)=(15 + 13 + 10 + 5+ 9 + 11) 其中 15 表示:F 13表示:B 10表示:A 11 表示:B
4、八进制转换为二进制
方法:从二进制转八进制中我们采用了 421 方法,同样的我们从八进制转二进制也可采用相同的方法,只是我们把思想倒过来。
同样是 421 方法,八进制数值中的每一个单独分开来,再看该数是由 421 中哪些数相加获得的,同样在 421中如果该三个数中其中那些数被用到,则用1表示,否则用0表示。
最后再将 转换后的数字相接 即可获得二进制数值
如:(6562)8 =(110 101 110 010)2
即:6 =4+2 二进制表示: 110
5 =4+1 101
6 =4+2 110
2 =2 010
即为 110 101 110 010
若出现小数部分,则小数部分也采用整数转换方式421 拼凑法来实现。
例如8进制数75.36对应的二进制就是111101.011110
5、 八进制转换为十进制
方法:八进制就是逢8进1,八进制采用0~7 这八个数来表达一个数。
将一个八进制数转换为十进制即分别在该数上从右往左依次记为 8的次方,次方从0开始,直至最左位。
如: (1507)8 = (839)10
即:7 * 80 +0 * 81 + 5 *82+ 1 * 83 =7+0+320+512=839
6、八进制转换为十六进制
方法:我没搜索到八进制直接转换为十六进制方法,但是看到可以间接转化。即先将八进制转换为二进制,在从二进制转化为十六进制,我想这因该也是一种可行的方法。其中的转换参考以上所述。
如:(6562)8 =(110 101 110 010)2
(1101 0111 0010)2 =(D72)16
小数:(31.5)(八)
整数部分:
3*8(1)+1*8(0)=25
小数部分:
5*8(-1)=0.625
所以(31.5)(八)=(25.625)(十)
7、十进制转换为二进制
1)方法:将要转换的的数字除以2,得到商和余数,将商继续除以2,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1
将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。
如(123)10 = (111011)2
2)小数:已知十进制数:25.625
整数部分:
25/2=12……1
12/2=6 ……0
6/2=3 ……0
3/2=1 ……1
1/2=0 ……1
然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式
小数部分:
0.625*2=1.25
0.25 *2=0.5
0.5 *2=1.0
然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式
所以:(25.625)10=(11001.101)2
8、十进制转换为八进制
方法:跟十进制转换为二进制方法相似的,区别是将要转换的的数字除以8,得到商和余数,将商继续除以8,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1
将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。
如(120)10 = (170)8
(25.625)(十)
整数部分:
25/8=3……1
3/8 =0……3
然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式
小数部分:
0.625*8=5
然后我们将整数部分按从上往下的顺序书写就是:5,那么这个0.5就是十进制0.625的八进制形式
所以:(25.625)(十)=(31.5)(八)
负数:的进制转换稍微有些不同。
先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。
例:要求把-9转换为八进制形式。则有:
-9的补码为11110111。然后三位一划
111—->7
110—->6
011—->3
然后我们将结果按从下往上的顺序书写就是:367,那么367就是十进制数-9的八进制形式。
9、十进制转换为十六进制
方法:跟十进制转换为二进制方法相似的,区别是将要转换的的数字除以16,得到商和余数,将商继续除以16,直到商为0,最后将所有的余数倒叙排列,得到的数就是转换结果;可以整除标为0,否则标为1
将商和余数由余数由下往上的方向依次获得的0 和1组成的数字就是二进制。
如(120)10 = (78)16
小数:(25.625)(十)
整数部分:
25/16=1……9
1/16 =0……1
然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式
小数部分:
0.625*16=10(即十六进制的A或a)
然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式
所以:(25.625)(十)=(19.A)(十六)
10、十六进制转换为二进制
方法:从二进制转十六进制中我们采用了 8421方法,同样的我们从十六进制转二进制也可采用相同的方法,只是我们把思想倒过来。
同样是 8421 方法,十六进制数值中的每一个单独分开来,再看该数是由 8421 中哪些数相加获得的,同样在 8421中如果该四个数中其中那些数被用到,则用1表示,否则用0表示。
最后再将 转换后的数字相接 即可获得二进制数值
如: (FDA59B)16 =(1111 1101 1010 0101 10011011)2
即:15 =8+4+2+1 二进制表示:1111
13=8+4+1 1101
10 =8+2 1010
5 =4+1 0101
9=8+1 1001
11=8+2+1 1011
即为 1111 1101 1010 0101 1001 1011
11、十六进制转换为八进制
方法:先将十六进制转换为二进制,再将二进制转换为八进制
如:(FDA59B)16 =(1111 1101 1010 0101 10011011)2
(111 111 011 010 010 110 011 011)2 =(77322633)8
12、十六进制转换为十进制
方法:将一个十六进制数从右往左可标记为16的次方,次方从0开始,直到最左边。;再将该数与对应的16的次方相乘。
如:(2AF5)16 = (10997)10
其中(A表示10,而F表示15)
即:5 * 160+ F * 161 + A * 162 +2 * 163 = 5+240+2560+8192=10997
小数:(19.A)(十六)
整数部分:
1*16(1)+9*16(0)=25
小数部分:
10*16(-1)=0.625
所以(19.A)(十六)=(25.625)(十)
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读