iKuai爱快流控路由

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2587|回复: 0
打印 上一主题 下一主题

[爱快技术] 进制转换

[复制链接]
跳转到指定楼层
楼主
发表于 2020-3-19 14:54:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
二进制到十进制的转换
十进制有 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,然后将每一步的得到的余数串起来,从左向右书写,就是我们所要转换的二进制数。

十六进制到十进制的转换
  要把一个十六进制数转换成我们熟悉的十进制数,我们采用和前面一样的方法。只不过,计算各个数位的权时,幂的底数是16。比如将十六进制数125转换成十进制数的方法如下:

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

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

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

二进制到十六进制的互换

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

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

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


换位思考

我们知道


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

那么


1110 = 15 - 1 = 14D

所以


1101 = 15 - 2 = 13D

1011 = 15 - 4 = 11D

0111 = 15 - 8 = 7D



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|论坛规章制度|iKuai Inc. ( 京ICP备13042604号 )

GMT+8, 2024-10-2 10:42

Powered by Discuz! X3.3

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表