二进制 八进制 和十六进制

来源:互联网 发布:黄天文 知乎 编辑:程序博客网 时间:2024/05/16 01:49

  二进制的基本规则就是“逢二进一”,其中只用0和1表示。

0 = 0

1 = 1

2 = 10(2 + 0)

3 = 11(2 + 1)

4 = 100(4 + 0 + 0)

···

8 = 1000(8 + 0 + 0 + 0)

···

16 = 10000(16 + 0 + 0 + 0 + 0)

···

32 = 100000(32 + 0 + 0 + 0 + 0 + 0)

···

64 = 1000000(64 + 0 + 0 + 0 + 0 + 0 + 0)

···

128= 10000000(128 + 0 + 0 + 0 + 0 + 0 + 0 + 0)

比如说1111,其中个位数代表的是1,十位数代表的是2,百位数代表的是4,千位数代表的是8,所以1111其实就是1 + 2 + 4 + 8 = 15(其实就是2的位数次幂);


八进制就是“逢八进一”,其中只用0,1,2,3,4,5,6,7表示。

所以二进制和八进制的转换就是三个为一组

000 = 0;

001 = 1;

010 = 2;

011 = 3;

100 = 4;

101 = 5;

110 = 6;

111 = 7;

举个简单的例子:(641)8 = (110 100 000)2 (其实就是8的位数次幂)


当然啦,十六进制就是“逢十六进一”啦!其中用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F来表示(其中A = 10,B = 11,C = 12,D = 13,E = 14 ,F = 15)。

二进制和十六进制之间的转换就是四个为一组

0000 = 0;

···(当然这其中都和八进制差不多,你们肯定都会啦,哈哈哈哈哈)

1010 = A;(其实就是10)

1011 = B;(11)

1100 = C;(12)

1101 = D;(13)

1110 = E;(14)

1111 = F;(15)

依旧一个简单的例子:(6F2A)16 = (0100 1111 0010 1010)2(当然就是16的位数次幂啦) 。

至于转换成十进制的只要将他们次幂相加以十进制就可以了(次幂不会输入,就不举例子啦)。

补充一下关于负数的二进制,首先需要求他的反码,之后求他的补码,得到的补码就是这个数的负数。

比如说5的二进制为: 00000000 00000000 00000000 00000101 ,他的反码为11111111 11111111 11111111 11111010(其实就是1和0互换),再求他的补码(其实就是反码加1) 11111111 11111111 11111111 11111011,这个二进制就是-5。