进制转换

二进制到十进制的转换

  • 十进制有 0,1,2,3,4,5,6,7,8,9
  • 二进制有 0,1

  由于所处的位置不同,每个数位都有一个不同的放大倍数,称为“"。每个数位的权是这样计算的:从右向左开始,以基数为底,指数从0开始递增的。比如一个二进制数 10110001,它的基数是2,所以要这样计算它等值的十进制数:

10110001 = 1×2\(^7\)+0×2\(^6\)+1×2\(^5\)+1×2\(^4\)+0×2\(^3\)+0×2\(^2\)+0×2\(^1\)+1×2\(^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×16\(^2\)+2×16\(^1\)+5×16\(^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
posted @ 2020-03-17 12:22  放飞梦想C  阅读(1048)  评论(0编辑  收藏  举报