探索二进制笔记流的图解步骤
更新日志
2022-9-15 子时 于 杭州
目录结构调整
配图补全
封面更改
说明:以下均指8位二进制数形式
在了解原码之前,先熟悉几个名词.。
机器数
数字在计算机中的二进制表现形式。分正负。
图解
真值
有符号数转二进制之后,其原来对应的值位真值,带符号的二进制转为其他进制之后的值称为形式值。
图解
注:红色的数字1是十进制-3转二进制之后的符号位
原码
符号位+真值的绝对值,即是带符号的二进制数
举例:
十进制 | 二进制原码 |
+1(正一) | 0000 0001 |
-1(负一) | 1000 0001 |
注意:八位二进制取值范围[-127,127]即为[1111 1111,0111 1111]
反码
正数的反码是它本身
负数的反码是在其原码基础上,符号位不变,其余位取反
图解:
补码
正数的补码是其本身
负数的补码是在原码基础上,符号位不变,其余位取反后加一
即等价于在反码基础上+1
图解
提示:二进制加法在后面会介绍
番外篇:为什么会有补码的出现????
- 计算机中只有加法
从小学开始,亲爱的数学老师就告诉我们,在数学中,一个数减去另一个数
等于该数加上另一个数的相反数(负数)
- 举个栗子:用原码计算
1-1=1+(-1)=0
∴易知,利用二进制原码进行计算时,出现了错误的结果,
显然1-1=0而不等于-2
你可能已经想到,既然原码不行,那么用反码怎么样?继续看.....
- 举个栗子:用反码计算
1-1=1+(-1)=0
注意啦!!!
最后的计算结果是
-0
(负零),虽然在数学上,0和-0可以等价,但在计算机中不行,因为已经有实例证出,两个二进制反码相减的结果等于-0的数并不唯一,了解更多,可以百度,或者自己摸索。这里不再赘述。∴ 在利用其反码进行计算时,也出现了不合理的结论,可见光有原码和反码并不完善,接下来有请压轴大佬补码出场。
由此,通过补码大佬的一番操作,终于将1-1=0证出,成功捍卫了二进制减法的地位!!!!
进制转换(二进制与十进制)
老规矩,正式进入内容之前,有必要了解一下几个相关的概念。
- 基数
数值位
x
进制,其基数就是x
---这里给出个人笔记上理解,喜欢完整解释的自行 百度举个栗子:十进制的基数位10,二进制的基数位2
权
也称位权 数进制中每一位固定位置对应的单位值。
举个栗子:
十进制的第二位的权位 10,第三位权位100,类推成立
二进制第二位的权位2
第三位权位4 类推成立
总结:对于N进制数,整数部分第i
位的权为$N^{i-1}$
而小数部分第j
位权为$N^{(-j)}$
- 系数,基数,幂的图示
十进制转二进制(整数)
小结:记住除基倒取余 即确定基数,将原值一直除以基数再记录得到的余数,最后倒着将余数写出,根据情况补位即可完成转换。
二进制转十进制(整数)
补齐二进制位数(注意符号位:0表正,1表负)
将位数乘以对应的权值
相加即可
举个栗子:将二进制1010转十进制
特别的,若补足位的二进制符号位为1时,要先取反再换算。
小数和负数的进制转换后序更新.....
按位与,或,异或,左右移运算
按位与(&)
图解:3 & 5 = 1
按位或|
图解:2 | 4 = 6
按位异或 ^
图解:6 ^ 7 = 1
按位非~
图解:~ (-5) = 4
左移运算<<
文解:(-5)<<2=(-20)
位移对象时进制数的补码
将二进制码左移
x
位,空出的位置用0
填充
(-5)的补码:1111 1011
左移2位: 1110 1100
转位原码:1001 0100(-20)
右移运算>>
文解:(-5)>>2
(-5)的补码:1111 1011
右移2位: 1111 1110
求出原码: 0000 0010(-2)
注意:上述步骤中的求原码不是必须的,为了方便讲解而已。
二进制加法
两整数二进制相加时,从低位(右边)开始
依次对每一位进行加法运算
规则:
1+1=10,1+0=1,0+0=0,0+1=1
注意
1+1=10
满足进位条件,需要向前一位进1,0写在本位
图解:23+13 = 36
的二进制加法
PS:二进制的减法,乘法和除法与其他部分相关内容将在后序的笔记中更新…感谢阅读与指正。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1hq2mccc3t0zm