ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

十进制转二进制 / 八进制 / 十六进制的手算方法,及其数学原理的通俗解释

2021-06-22 16:05:10  阅读:509  来源: 互联网

标签:十六进制 154 16 二进制 除以 109 手算 八进制 十进制


前言:接触计算机的同学学习基础课程时,不免会碰到十进制转二进制 / 八进制 / 十六进制这种问题。常见的方法有“除以2/8/16看余数”。本文在介绍方法的前提上,对其数学原理进行了通俗的解释。

 二进制与十进制

不考虑汇编语言的特性,对于一个字节:1 0 0 1 1 0 1 0,将其转十进制即为

2^7 \times 1 + 2^6 \times 0 + 2^5 \times 0 + 2^4 \times 1 + 2^3 \times 1 + 2^2 \times 0 + 2^1 \times 1 + 2^0 \times 0 = 154

要注意最低位(最右边的位)代表的是2的0次方,而非1次方。总之,二进制转十进制很简单。这里为后文做铺垫。

十进制转二进制手算方法

以154为例:将154不断除以2,取余数,最后从底部取数,作为二进制的开头。

操作 上一行操作的商值 余数
154除以2 154 0
77除以2 77 1
38除以2 38 0
19除以2 19 1
9除以2 9 1
4除以2 4 0
2除以2 2 0
1除以2 1 1

最后所得二进制值即10011010。

结果是正确的,但是这个方法的道理/数学原理是什么?

数学原理

十进制数154,对应的二进制为10011010,即2^7 \times 1 + 2^4 \times 1 + 2^3 \times 1 + 2^1 \times 1 = 154,我们将这个式子进行与上述方法同样的操作。

操作 上一行操作的商值 余数
154除以2 154 = 2^7 * 1 + 2^4 * 1 + 2^3 * 1 + 2^1 * 1 0
77除以2 77 = 2^6 * 1 + 2^3 * 1 + 2^2 * 1 + 2^0 * 1 1
38除以2 38 = 2^5 * 1 + 2^2 * 1 + 2^1 * 1 0
19除以2 19 = 2^4 * 1 + 2^1 * 1 + 2^0 * 1 1
9除以2 9 = 2^3 * 1 + 2^0 * 1 1
4除以2 4 = 2^2 * 1 0
2除以2 2 = 2^1 * 1 0
1除以2 1 = 2^0 * 1 1

如上表,不断除以2实际上是一种“将二进制高位降档”的过程:

  • 对于最高位的2,比如10011010最左边的1,当然要除以7次2才能把低位的1和0“清理干净”;
  • 实际上,还可把除以2理解为一种“吞掉低位数字”,即第一次除以2将10011010末尾的0吞掉,吐出1001101,以此类推;
  • 不管怎么理解,都与定义规则规则息息相关。

【附】定义规则:对于\omega位的二进制数X = x_\omega x_{\omega-1} ... x_{2}x_{1},其转换为十进制即B2U(X) = \sum_{i=1}^{\omega} x_i \cdot 2^{i-1}

拓展:十进制转八进制、十六进制

那现在读者也一定知道八进制转二进制的做法和原理了吧?我来举个例子,比如十进制数109。

操作 上一行操作的商值 余数
109除以8 109 = 8^2 * 1 + 8^1 * 5 + 8^0 * 5 5
13除以8 13 = 8^1 * 1 + 8^0 *5 5
1除以8 1 = 8^0 * 1 1

即109的八进制为155。

转为十六进制例子如下。

操作 上一行操作的商值 余数
109除以16 109 = 16^1 * 1 + 16^0 * 13 D(13)
6除以16 6 = 16^0 * 6 6

即109的十六进制为6D。

标签:十六进制,154,16,二进制,除以,109,手算,八进制,十进制
来源: https://blog.51cto.com/u_15279775/2937866

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有