本文发布于 1607 天前,最后更新于 1402 天前,其中的信息可能已经有所发展或是发生改变。
在数字后面加上不同的字母来表示不同的进位制。B(Binary)表示二进制,O(Octal)表示八进制,D(Decimal)或不加表示十进制,H(Hexadecimal)表示十六进制。例如:(101011)B=(53)O=(43)D=(2B)H
二进制
二进制(binary)在数学和数位电路中指以2为底数的记数系统,以2为基数代表系统是二进位制的。
这一系统中,通常用两个不同的数字0和1来表示。数字电子电路中,逻辑门直接采用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个位元(二进制位)或比特(Bit,Binary digit 的缩写)。
运算规则
- 加法:0+0=0,0+1=1,1+0=1,1+1=10
- 减法:0-0=0,1-0=1,1-1=0,10-1=1
- 乘法:0×0=0,0×1=0,1×0=0,1×1=1
- 除法:0÷1=0,1÷1=1
十进制化为二进制
诀窍:以小数点为界,整数部分除以2,然后取每次得到的商和余数,用商继续和2相除,直到商小于2。
然后把第一次得到的余数作为二进制的个位,第二次得到的余数作为二进制的十位,依次类推,最后一次得到的小于2的商作为二进制的最高位,这样由商+余数组成的数字就是转换后二进制的值(整数部分用除2取余法)
小数部分则先乘2,然后获得运算结果的整数部分,将结果中的小数部分再次乘2,直到小数部分为零。然后把第一次得到的整数部分作为二进制小数的最高位,后续的整数部分依次作为低位,这样由各整数部分组成的数字就是转化后二进制小数的值(小数部分用乘2取整法)。
需要说明的是,有些十进制小数无法准确的用二进制进行表达,所以转换时符合一定的精度即可,这也是为什么计算机的浮点数运算不准确的原因。
将59.25(10) 转成二进制:
- 整数部分:
- 59 ÷ 2 = 29 … 1
- 29 ÷ 2 = 14 … 1
- 14 ÷ 2 = 7 … 0
- 7 ÷ 2 = 3 … 1
- 3 ÷ 2 = 1 … 1
- 1 ÷ 2 = 0 … 1
- 小数部分:
- 0.25 × 2 = 0.5
- 0.50 × 2 = 1.0
所以:
二进制化为十进制
将1001012转换为十进制形式如下:
1001012 = [ ( 1 ) × 25 ] + [ ( 0 ) × 24 ] + [ ( 0 ) × 23 ] + [ ( 1 ) × 22 ] + [ ( 0 ) × 2 ] + [ ( 1 ) × 1 ]
1001012 = [ 1× 32 ] + [ 0 × 16 ] + [ 0 × 8 ] + [ 1 × 4 ] + [ 0 × 2 ] + [ 1 × 1 ]
1001012 = 3710
十六进制
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F表示,其中:A~F相当于十进位的10~15,这些称作十六进制数字。
十进制(Decimal)——>十六进制(Hex)
诀窍:方法同十进制转化成二进制类似。
以小数点为界,整数部分除以16,然后取每次得到的商和余数,用商继续和16相除,直到商小于16。
然后把第一次得到的余数作为十六进制的个位,第二次得到的余数作为十六进制的十位,依次类推,最后一次得到的小于16的商作为十六进制的最高位,这样由商+余数组成的数字就是转换后十六进制的值(整数部分用除16取余法)
小数部分则先乘16,然后获得运算结果的整数部分,将结果中的小数部分再次乘16,直到小数部分为零。然后把第一次得到的整数部分作为十六进制小数的最高位,后续的整数部分依次作为低位,这样由各整数部分组成的数字就是转化后十六进制小数的值(小数部分用乘16取整法)。
采馀数定理分解,例如将487710转成十六进位:
4877÷16=304…13(D)
304÷16=19…0
19÷16=1…3
1÷16=0…1
这样就计到487710=130D16
十六进制的乘法表
例子1:将十进制数93转换成十六进制数。
93/16=5…………13(D)
93 = (5D) 16
例子2: 将十进制数0.3125转换成十六进制数。
0.3125×16 = 5 .0
0.3125 = (0.5) 16