常用进制转换

2023-08-01  本文已影响0人  CarlosLynn

常用进制

|2⁴ | 2³ | 2² | 2¹ | 2º |

每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15

各个进制的相互转换

二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方。
如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。
因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。
例如:

1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=
128+64+32+16+8+4+2+1=255

结果为:255

1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+0*2^0=
128+64+32+16+8+4+2+0=254

结果为:254

 0  + 0 + 32 + 0 + 8  + 0+ 0+ 2 + 0  = 42

结果为:42

它的基本思想是不断将十进制数除以2,每次记录余数,直到商数为0为止。
然后我们将所有余数按相反的顺序排列得到二进制数。
例如:

255 / 2 = 127 余 1
127 / 2 =  63 余 1
 63 / 2 =  31 余 1
 31 / 2 =  15 余 1
 15 / 2 =   7 余 1
  7 / 2 =   3 余 1
  3 / 2 =   1 余 1
  1 / 2 =   0 余 1

然后我们将所有余数按相反的顺序排列,即得到二进制数1111 1111

128 / 2 = 64 余 0
 64 / 2 = 32 余 0
 32 / 2 = 16 余 0
 16 / 2 =  8 余 0
  8 / 2 =  4 余 0
  4 / 2 =  2 余 0
  2 / 2 =  1 余 0
  1 / 2 =  0 余 1

然后我们将所有余数按相反的顺序排列,即得到二进制数1000 0000

9 / 2 = 4 余 1
4 / 2 = 2 余 0
2 / 2 = 1 余 0
1 / 2 = 0 余 1

然后我们将所有余数按相反的顺序排列,即得到二进制数1001
同样的方法可以用于将任意十进制数转换为二进制数。

像10进制数一样,把16进制数看成有个位数,十位数,百位数……
将“个位数”乘上16的0次方(16^0),
将“十位数”乘上16的1次方(
16^1),
将“百位数”乘上16的2次方(*16^2),
最后将所有上面得到的数加起来就是他的十进制数了

例如:
将十六进制的 (10A) 转换成10进制的数

A*1=10
0*16=0
1*16^2=256

所以所得的数为10+0+256=266

将十六进数2AF5转换成10进制的数

5×16º+F×16¹+A×16²+2×16³=10997
也可以用竖式表示:
第0位: 5×16º=5
第1位: F×16¹=240
第2位: A×16²=2560
第3位: 2×16³=8192

将十六进数B2625转换成10进制的数
5×16º+ 2×16¹+ 6×16²+ 2×16³ + 2×16⁴ = 140837.
也可以用竖式表示:

第0位: 5×16º = 5
第1位: 2×16¹ = 32
第2位: 6×16² = 1536
第3位: 2×16³ = 8192
第4位: 2×16⁴ = 131072

这个有点麻烦……将给定的十进制整数除以基数16,余数便是等值的16进制的最低位。
将上一步的商再除以基数16,余数便是等值的16进制数的次低位。
重复上一步骤,直到最后所得的商等于0为止。
各次除得的余数,便是16进制各位的数,
最后一次的余数是最高位
例如:

10进制的 (100) 变为16进制
先把100除以16,得到6余数为4,则“个位数”为4;
用6除以16,得到0余数为6,则“十位数”为6。
所以100的16进制为“64”。
上一篇 下一篇

猜你喜欢

热点阅读