一、进制转换
1、数制和码制
十进制 | 二进制 | 八进制 | 十六进制 | 8421BCD码 |
0 | 0 | 0 | 0 | 0000 |
1 | 1 | 1 | 1 | 0001 |
2 | 10 | 2 | 2 | 0010 |
3 | 11 | 3 | 3 | 0011 |
4 | 100 | 4 | 4 | 0100 |
5 | 101 | 5 | 5 | 0101 |
6 | 110 | 6 | 6 | 0110 |
7 | 111 | 7 | 7 | 0111 |
8 | 1000 | 10 | 8 | 1000 |
9 | 1001 | 11 | 9 | 1001 |
10 | 1010 | 12 | A | 0001 0000 |
11 | 1011 | 13 | B | 0001 0001 |
12 | 1100 | 14 | C | 0001 0010 |
13 | 1101 | 15 | D | 0001 0011 |
14 | 1110 | 16 | E | 0001 0100 |
15 | 1111 | 17 | F | 0001 0101 |
1、二进制数与十进制数之间的转换
转换原则:按权展开相加,将二进制数写成N的各次幂之和形式,然后按十进制计算结果。
(10111101)2 = 1x27+0x26+1x25+1x24+1x23+1x22+0x21+1x20 = (189)10
2、二进制转八进制
二进制(1 110 110 111 011 100)2 = (166734)8
八进制 1 6 6 7 3 4
3、二进制转十六进制
二进制 (1101 1001 1110 0100)2 = (D9E4)16
十进制 13 9 14 4
十六进制 D 9 E 4
4、二进制转8421bcd码
二进制转8421bcd码不能直接转,通常二进制数先转为十进制数,再转为bcd码
(1101)2 = (13)10 = (0001 0011)bcd
5、M进制向十进的转换
转换原则:按权展开相加,将M进制数写成N的各次幂之和形式,然后按十进制计算结果。
(5213)6 = 5 x 63 + 2 x 62+ 1 x 61+ 3 x 60 = (1186)10
6、十进制向N进制的转换
转换原则:十进制数除N后倒取余 (150)10 = (226)8
二、原码反码和补码
二进制数中,第一位为符号位,1表示负数,0表示正数
1、正数:反码补码和原码一样
2、负数:
原码:最高位是1,后面是其绝对值的二进制数
反码:符号位不变,数据位按位取反
补码:在其反码的最后一位+1
3、计算
在计算机中运算中,加减法是高频运算,使用同一个运算器,可以减少中间变量存储的开销,这样也降低了CPU内部的设计复杂度
减去一个数等于加上这个数的负数
两个正数正数相加时,按照二进制加法直接计算即可
如果有负数参与计算时则要使用其补码来参与计算。
例
负数:最左一位表示负,右面七位按位取反+1 -(0000010)=-2
原文地址:https://www.cnblogs.com/haoyujun135/p/11257154.html