1.进制转换
1.1二进制与十进制转换
(1) 十进制转换成二进制,就是把十进制除以2取余数,然后由下往上依
次得出的余数就是转换成的二进制。 例:125转换成二进制就是1111101。
(2) 二进制转换成十进制就是从右到左,二进制数分别乘以二进制的权重(20、21、22、23……)再相加。
例:1101转换成十进制就是13。
1.2二进制与八进制转换
八进制写成二进制只需要三位即可,故从右到左,每三位二进制数转换成八进制。
二进制与八进制转换表:
八进制 | 二进制 |
---|---|
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
例:二进制的01101011,换成八进制:0153。注:0开头的数字,会被当做八进制。
1.3二进制与十六进制转换
十六进制写成二进制需要四位,故从右到左,每四位二进制数转换成十六进制。
二进制与十六进制转换表:
十六进制 | 二进制 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0 010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
例:二进制的01101011,换成十六进制:0x6b。注:十六进制表⽰的时候前⾯加0x。
2.原码、反码、补码
对于有符号的整数来说,二进制的表示方式是:最高位的1位用来当做符号位,剩余位均是数值位。其中0表示“正”,1表示“负”。
(注:在计算机系统中,数据存放在内存中,存放的都是补码,原因在于CPU只有加法器,使用补码可以做到符号位和数值位统一处理,加法和减法也可以统一处理)。
(1)正整数的原码、补码、反码都相同。
原码、补码、反码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。
(2)负整数的原码、补码、反码如下:
原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。
反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。
补码:反码**+1**就得到补码。
注:反码得到原码也是可以使⽤:取反,+1的操作。
例:整型(int,四个字节,32位)128的原码、反码、补码如下:
原码、反码、补码:00000000,00000000,00000000,01000000
例:整型(int,四个字节,32位)-128的原码、反码、补码如下:
原码:10000000,00000000,00000000,01000000 0x40
反码:11111111,11111111,11111111,10111111 0xBF
补码:11111111,11111111,11111111,11000000 0xC0