iKuai爱快流控路由

标题: 进制转换 [打印本页]

作者: 爱快技术支持05    时间: 2020-3-19 14:54
标题: 进制转换
二进制到十进制的转换
十进制有 0,1,2,3,4,5,6,7,8,9
二进制有 0,1
  由于所处的位置不同,每个数位都有一个不同的放大倍数,称为“权"。每个数位的权是这样计算的:从右向左开始,以基数为底,指数从0开始递增的幂。比如一个二进制数 10110001,它的基数是2,所以要这样计算它等值的十进制数:

10110001 = 1×27^7
7
+0×26^6
6
+1×25^5
5
+1×24^4
4
+0×23^3
3
+0×22^2
2
+0×21^1
1
+1×20^0
0
  = 177D

由上可以想到另一种方法转换:

由上我们可以列出一组数:1,2,4,8,16,32,64,128 ······
我们可以对应这组数进行计算,二进制遇到 1 就累加,遇到 0 就跳过。

10110001 = 128+32+16+1 = 177

  上面的公式里,10110001B 里的B表示这是一个二进制数,D则表示177是个十进制数。B 和 D 分别是英语单词 Binary 和 Decimal 的头一个字母,这两个单词分别表示二进制和十进制的意思。

十进制到二进制的转换
  为了将一个十进制转换成二进制数,可以采用将它不停地除以二进制的基数 2,直到商为0,然后将每一步的得到的余数串起来,从左向右书写,就是我们所要转换的二进制数。
[attach]145211[/attach]
十六进制到十进制的转换
  要把一个十六进制数转换成我们熟悉的十进制数,我们采用和前面一样的方法。只不过,计算各个数位的权时,幂的底数是16。比如将十六进制数125转换成十进制数的方法如下:

125H = 1×162^2
2
+1×162^2
2
+1×160^0
0
  = 293D

  上式里,125后面的 H 用于表明这是个十六进制数,它是盈余单词 hexadecimal 的头一个字母,这个单词的意思是十六进制。

十进制到十六进制的转换
  要把一个十进制数转换成十六进制数,则可以采取不停地除以16并取其余数的策略。
[attach]145212[/attach]
二进制到十六进制的互换

  看看十进制数,二进制数和十六进制数之间,都有些什么有趣的规律和特点。

[attach]145213[/attach]

 4比特的二进制数,可以表示的数是 0000 到 1111,也就是十进制的0~15,这正好对应于十六进制的0 ~ F。

[attach]145214[/attach]

 如果将一个二进制数从右向左,分成4比特为一组的形式,分别将一组的值转换成十六进制数,就可以得到这个 二进制数所对应的十六进制数。


换位思考

我们知道


1111B = 8+4+2+1 = 15D

那么


1110 = 15 - 1 = 14D

所以


1101 = 15 - 2 = 13D

1011 = 15 - 4 = 11D

0111 = 15 - 8 = 7D








欢迎光临 iKuai爱快流控路由 (https://bbs.ikuai8.com/) Powered by Discuz! X3.3