欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二进制基础

程序员文章站 2022-05-08 22:51:02
...

xl_echo编辑整理,交流学习请加1280023003
百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!


什么是二进制

简单的说二进制就是只有0和1表示的计数规则,逢2进1。以此可以看出我们的十进制就是使用0-9表示的技术规则,逢10进1。

二进制和十进制数的生成规则

十进制 1 2 3 4 5 6 7 8 9
二进制 0001 0010 0011 0100 0101 0110 0111 1000 1001

根据上面的数据对应,我们不难发现规律

1 > 0001
	10进制的1变成二进制就是0001,也就是 0 + 0 + 0 + 2^0 = 1
2 > 0010
	10进制的1变成二进制就是0010,也就是 0 + 0 + 2^1 + 0 = 2
3 > 10
	10进制的1变成二进制就是0010,也就是 0 + 0 + 2^1 + 2^0 = 2
	……

这里我们反过来推,计算二进制转换成为10进制,拿111001来举例

111001
	2^(6-1)+2^(5-1)+2^(4-1)+2^(1-1) = 57
111000
	2^(6-1)+2^(5-1)+2^(4-1) = 56
110111
	2^(6-1)+2^(5-1)+2^(3-1)+2^(2-1)+2^(1-1) = 55
	……

短除2,让十进制转换成二进制

除法 余数
2 57 28
2 28 14
2 14 7
2 7 3
2 3 1
2 1 0

将余数从下往上数,得到57的二进制数:111001

那么我们可以从上面观察到一个问题,那就是上面的都是整数,没有负数。在这里那我们的负数使用二进制是怎么解决的呢?

在计算机中,二进制有符号位

负数的二进制码

机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。

十进制 -1 -2 -3 -4 -5 -6 -7 -8 -9
8位二进制 1000 0001 1000 0010 1000 0011 1000 0100 1000 0101 1000 0110 1000 0111 1000 1000 1000 1001

提及二进制有必要提及一下反码、补码

什么是补码?

这里只演示负数,因为正整数的原码、反码、补码完全一样

补码要从原码、反码说起

  • 原码:比较简单就是原来的编码(一个整数,按照绝对值大小转换成的二进制数,称为原码);
  • 反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
  • 补码:反码 + 1 = 符号位不变 + 其他位按位取反 +1
十进制 -1 -2 -3 -4 -5 -6 -7 -8 -9
8位二进制原码 1000 0001 1000 0010 1000 0011 1000 0100 1000 0101 1000 0110 1000 0111 1000 1000 1000 1001
8位二进制反码 1111 1110 1111 1101 1111 1100 1111 1011 1111 1010 1111 1001 1111 1000 1111 0111 1111 0110
8位二进制补码 1000 0001 1000 0011 1000 0011 1000 0101 1000 0101 1000 0110 1000 0111 1000 1001 1000 1001
相关标签: 二进制