未分类

位置化数字系统

内容纲要

版权归作者 ©刘龙宾 所有,本文章未经作者允许,禁止私自转载!

十进制整数转其它进制

十进制整数转为二进制

核心要点:对十进制整数连续 ÷2,再倒取余数

例如:十进制整数 (25)10,可以用二进制表示为 (11001)2

步骤1:针对十进制数字,连续进行 ÷2 的操作
↓ 25 ÷ 2 ···· 1 ↑
↓ 12 ÷ 2 ···· 0 ↑
↓ 6  ÷ 2 ···· 0 ↑
↓ 3  ÷ 2 ···· 1 ↑
↓ 1 ↑

步骤2:
把每次 ÷2 之后得到的余数,倒序拼接起来,即得到十进制数字的二进制表示法:11001

十进制整数转为八进制

核心要点:对十进制整数连续 ÷8,再倒取余数

例如:十进制整数 (126)10,可以用八进制表示为 (176)8

步骤1:针对十进制数字,连续进行 ÷8 的操作
↓ 126 ÷ 8 ···· 6 ↑
↓ 15  ÷ 8 ···· 7 ↑
↓ 1 ↑

步骤2:
把每次 ÷8 之后得到的余数,倒序拼接起来,即得到十进制数字的八进制表示法:176

十进制整数转为十六进制

核心要点:对十进制整数连续 ÷16,再倒取余数

例如:十进制整数 (126)10,可以用十六进制表示为 (7E)16

步骤1:针对十进制数字,连续进行 ÷16 的操作
↓ 126 ÷ 16 ···· 14 ↑
↓ 7 ↑

步骤2:
把每次 ÷16 之后得到的余数,倒序拼接起来,即得到十进制数字的十六进制表示法:7E

注意:在十六进制中,10 – 15 这几个数字,分别用英文字母 A,B,C,D,E,F 表示。所以 E 就表示十六进制中的 14。

十进制小数转其它进制

十进制小数转为二进制

核心要点:对十进制的小数部分连续 ×2,直到小数点右侧没有小数位、或取到足够的位数时结束,最后再顺取每次 ×2 之后的整数位。

例如:十进制小数 (0.625)10,可以用二进制表示为 (0.101)2

步骤1:针对十进制的小数,进行连续 ×2 的操作
↓ 0.625 × 2
↓ 1.25 ·········· 1 ↓
↓ 0.25 × 2
↓ 0.5 ··········· 0 ↓
↓ 0.5 × 2
↓ 1.0 ··········· 1 ↓

步骤2:
把每次 ×2 之后得到的整数位,顺序拼接起来,即得到十进制小数的二进制表示法:101

十进制小数转为八进制

核心要点:对十进制的小数部分连续 ×8,直到小数点右侧没有小数位、或取到足够的位数时结束,最后再顺取每次 ×8 之后的整数位。

例如:十进制小数 (0.634)10 可以用八进制表示为 (0.5044)8

步骤1:针对十进制的小数,进行连续 ×8 的操作
↓ 0.634 × 8
↓ 5.072 ·········· 5 ↓
↓ 0.072 × 8
↓ 0.576 ·········· 0 ↓
↓ 0.576 × 8
↓ 4.608 ·········· 4 ↓
↓ 0.608 × 8
↓ 4.864 ·········· 4 ↓

步骤2:
把每次 ×8 之后得到的整数位,顺序拼接起来,即得到十进制小数的八进制表示法:0.5044

注意:当小数位经过多次乘法操作后依然有值,此时仅需要计算到(原十进制小数位+1)个小数位即可。

十进制小数转为十六进制

核心要点:对十进制的小数部分连续 ×16,直到小数点右侧没有小数位、或取到足够的位数时结束,最后再顺取每次 ×16 之后的整数位。

例如:十进制小数 (0.315)10 可以用十六进制表示为 (0.50A3)16

步骤1:针对十进制的小数,进行连续 ×16 的操作
↓ 0.315 × 16
↓ 5.04 ··········· 5  ↓
↓ 0.04 × 16
↓ 0.64 ··········· 0  ↓
↓ 0.64 × 16
↓ 10.24 ·········· 10 ↓
↓ 0.24 × 16
↓ 3.84 ··········· 3  ↓

步骤2:
把每次 ×16 之后得到的整数位,顺序拼接起来,即得到十进制小数的十六进制表示法:0.50A3

注意:当小数位经过多次乘法操作后依然有值,此时仅需要计算到(原十进制小数位+1)个小数位即可。

拓展:同时转换整数位和小数位

如果要把同时包含整数位和小数位的十进制数字,转化为二进制、八进制、或十六进制,则按照整数和小数的转换规则,分别转换整数位和小数位即可。

例如:十进制数字 (34.125)10 可以用二进制表示为 (100010.001)2

步骤1:针对整数位 34,连续进行 ÷2 的操作
↓ 34 ÷ 2 ···· 0 ↑
↓ 17 ÷ 2 ···· 1 ↑
↓ 8  ÷ 2 ···· 0 ↑
↓ 4  ÷ 2 ···· 0 ↑
↓ 2  ÷ 2 ···· 0 ↑
↓ 1 ↑
倒取 ÷2 之后的余数,得到整数位 34 的二进制表示 100010

步骤2:针对小数位 0.125,连续进行 ×2 的操作
↓ 0.125 × 2
↓ 0.25 ·········· 0 ↓
↓ 0.25 × 2
↓ 0.5 ··········· 0 ↓
↓ 0.5 × 2
↓ 1.0 ··········· 1 ↓
顺取 ×2 之后的整数位,得到小数位 0.125 的二进制表示 0.001

步骤3:把整数位和小数位的二进制,用小数点拼接起来,
因此,十进制数字 34.125 的二进制表示为 100010.001

其它进制转为十进制

二进制转十进制

二进制整数转十进制

核心要点:将(二进制位权 × 位置量)进行累加即可。

例如:二进制整数 (11010)2 转成十进制整数为 (26)10

位置量      1     1     0     1     0
位  权     2^4   2^3   2^2   2^1   2^0
各部分结果 16     8     0     2     0
十进制的值 26

注意:二进制整数位的位权,从右往左,分别是:20次幂 (1)、21次幂 (2)、22次幂 (4)、23次幂 (8)、……、2的n次幂…

二进制小数转十进制

核心要点:将(二进制的位权 × 位置量)进行累加即可。

例如:二进制小数 (0.101)2 转成十进制小数为 (0.625)10

位置量      1      0      1
位  权     2^-1   2^-2   2^-3
各部分结果 0.5    0      0.125
十进制的值 0.625

注意:二进制小数位的位权,从左往右,分别是:2-1次幂 (0.5)、2-2次幂 (0.25)、2-3次幂 (0.125)、……、 2-n次幂

八进制转十进制

八进制整数转十进制

核心要点:将(八进制的位权 × 位置量)进行累加即可。

例如:八进制整数 (765)8 转成十进制整数为 (501)10

位置量      7      6      5
位  权     8^2    8^1    8^0
各部分结果 448    48      5
十进制的值 501

注意:八进制整数位的位权,从右往左,分别是:80次幂 (1)、81次幂 (8)、82次幂 (64)、……、8的n次幂…

八进制小数转十进制

核心要点:将(八进制的位权 × 位置量)进行累加即可。

例如:八进制小数 (0.56)8 转成十进制小数为 (0.71875)10

位置量      5        6
位  权     8^-1     8^-2
各部分结果 0.625    0.09375
十进制的值 0.71875

注意:八进制小数位的位权,从左往右,分别是:8-1次幂 (0.125)、8-2次幂 (0.015625)、……、 8-n次幂

十六进制转十进制

十六进制整数转十进制

核心要点:将(十六进制的位权 × 位置量)进行累加即可。

例如:十六进制整数 (F1A)16 转成十进制整数为 (3866)10

位置量      F      1      A
位  权     16^2   16^1   16^0
各部分结果 3840    16     10
十进制的值 3866

注意:十六进制整数位的位权,从右往左,分别是:160次幂 (1)、161次幂 (16)、162次幂 (256)、……、16的n次幂…

十六进制小数转十进制

核心要点:将(十六进制的位权 × 位置量)进行累加即可。

例如:十六进制小数 (0.32)16 转成十进制小数为 (0.1953125)10

位置量      3        2
位  权     16^-1     16^-2
各部分结果 0.1875    0.0078125
十进制的值 0.1953125

注意:十六进制小数位的位权,从左往右,分别是:16-1次幂 (0.0625)、16-2次幂 (0.00390625)、……、 16-n次幂

二进制 – 八进制 – 十六进制之间的转换

二进制 – 八进制互转

二进制转八进制

核心要点

  1. 小数点左侧的整数位:从右往左,每三位二进制取成一个八进制位,最后剩余不满三位的二进制,需在左侧补零填充成三位
  2. 小数点右侧的小数位:从左往右,每三位二进制取成一个八进制位,最后剩余不满三位的二进制,需在右侧补零填充成三位

例如:二进制数字 (1110011.1101)2 转成八进制数字为 (163.64)8;具体的转化过程如下:

步骤1:整数位从右往左,每三位取成一个八进制位,最后剩余不满三位的二进制,需在左侧补零
二进制位  001  110  011
八进制位   1    6    3
整数部分转成八进制为 163

步骤2:小数位从左往右,每三位取成一个八进制位,最后剩余不满三位的二进制,需在右侧补零
二进制位  110   100
八进制位   6     4
小数部分转成八进制为 0.64

步骤3:把转化完成的整数位和小数位拼接,即得到最终的八进制数字 163.64

八进制转二进制

核心要点

  1. 小数点左侧的整数位:从右往左,每个八进制数字通过连续的 ÷2 操作,化成三位二进制来表示,转成的二进制如果不满三位,需在左侧补零填充成三位
  2. 小数点右侧的小数位:从左往右,每个八进制数字通过连续的 ÷2 操作,化成三位二进制来表示,转成的二进制如果不满三位,需在右侧补零填充成三位

例如:八进制数字 (125.36)8 转成二进制数字为 (1010101.01111)2;具体的转化过程如下:

步骤1:整数位从右往左,每位八进制数字都需要转成三位的二进制来表示,如果不满三位,则要在左侧补零
八进制位  1     2     5
二进制位  001   010   101
整数部分转成二进制为 1010101,其中,最高位空白的零可以省略

步骤2:小数位从左往右,每位八进制数字都需要转成三位的二进制来表示,如果不满三位,则要在右侧补零
八进制位  3     6
二进制位  011   110
小数部分转成二进制表示位 0.01111,其中,最低位空白的零可以省略

步骤3:把整数部分和小数部分的二进制拼接,即得到最终的二进制数字 1010101.01111

二进制 – 十六进制互转

二进制转十六进制

核心要点

  1. 小数点左侧的整数位:从右往左,每四位二进制取成一个十六进制位,最后剩余不满四位的二进制,需在左侧补零填充成四位
  2. 小数点右侧的小数位:从左往右,每四位二进制取成一个十六进制位,最后剩余不满四位的二进制,需在右侧补零填充成四位

例如:二进制数字 (1111011.1101)2 转成十六进制数字为 (7B.D)16;具体的转化过程如下:

步骤1:整数位从右往左,每四位取成一个十六进制位,最后剩余不满四位的二进制,需在左侧补零
二进制位    0111   1011
十六进制位  7      B
整数部分转成十六进制为 7B

步骤2:小数位从左往右,每四位取成一个十六进制位,最后剩余不满四位的二进制,需在右侧补零
二进制位    1101
十六进制位  D
小数部分转成十六进制为 D

步骤3:把转化完成的整数位和小数位拼接,即得到最终的十六进制数字 7B.D

十六进制转二进制

核心要点

  1. 小数点左侧的整数位:从右往左,每个十六进制数字通过连续的 ÷2 操作,化成四位二进制来表示,转成的二进制如果不满四位,需在左侧补零填充成四位
  2. 小数点右侧的小数位:从左往右,每个十六进制数字通过连续的 ÷2 操作,化成四位二进制来表示,转成的二进制如果不满四位,需在右侧补零填充成四位

例如:十六进制数字 (CA.2B)16 转成二进制数字为 (11001010.00101011)2;具体的转化过程如下:

步骤1:整数位从右往左,每位十六进制数字都需要转成四位的二进制来表示,如果不满四位,则要在左侧补零
十六进制位  C       A
二进制位    1100    1010
整数部分转成二进制为 11001010

步骤2:小数位从左往右,每位十六进制数字都需要转成四位的二进制来表示,如果不满四位,则要在右侧补零
十六进制位  2       B
二进制位    0010    1011
小数部分转成二进制表示位 0.00101011

步骤3:把整数部分和小数部分的二进制拼接,即得到最终的二进制数字 11001010.00101011

八进制 – 十六进制互转

八进制转十六进制

核心要点:先将八进制转成二进制,再将二进制转成十六进制

例如:八进制数字 (75.67)8 转成十六进制数字为 (3D.DC)16;具体的转化过程如下:

步骤1:将每位八进制数字分别转成三位的二进制进行表示
八进制位   7    5   .   6    7
二进制位   111  101 .   110  111

步骤2:将每四位二进制分别转成一个十六进制位表示,整数部分从右往左,小数部分从左往右,位数不足的需补零
二进制位   0011   1101   .   1101   1100
十六进制位 3      D      .   D      C

因此,最终八进制数字 75.67 转成十六进制后表示为 3D.DC

十六进制转八进制

核心要点:先将十六进制转成二进制,再将二进制转成八进制

例如:十六进制数字 (AD.EF)16 转成八进制数字为 (255.736)8;具体的转化过程如下:

步骤1:将每位十六进制数字,分别转成四位的二进制进行表示
十六进制位   A      D      .      E      F
二进制位     1010   1101   .      1110   1111

步骤2:将每三位二进制分别转成一个八进制位表示,整数部分从右往左,小数部分从左往右,位数不足的需补零
二进制位     010   101   101   .   111   011   110
八进制位     2     5     5     .   7     3     6

因此,最终十六进制数字 AD.EF 转成八进制后表示为 255.736

版权归作者 ©刘龙宾 所有,本文章未经作者允许,禁止私自转载!

一个自由の前端程序员

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注