现在所有计算机都采用二进制补码方法来表示有符号数。
对二进制补码,操作结果超出硬件允许的容量会发生溢出。负数的符号位是0或正数的符号位是1,即符号位不正确时发生溢出。
一个数和它按位取反的结果相加结果一定是111……111【补】,即-1【原】。
计算机为什么要使用二进制
(1)
技术实现简单
,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。
(2)简化运算规则
:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。
(3)适合逻辑运算
:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。
(4)易于进行转换
,二进制与十进制数易于互相转换。
(5)使数据具有抗干扰能力强
,可靠性高
等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低。
计算机为什么要使用补码
机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,决定了计算机的精度。
无符号整形:无符号整形在就是以纯粹的二进制数据串存储在计算机中。
带符号整形:机器数的最高位是表示正、负号的符号位,其余位则表示数值。
有符号数的三种表示方法:
原码的表示
:正数符号位为0,负数符号为为1,其他的数据为按数值大小写成二进制形式。
原码到反码的运算
:正数的反码与其原码相同;负数的反码是除符号位外的所有数据位取反。
原码到补码的运算
:原码按位取反+1或 原码-1取反
-
+0原码是00000000
-
+0反码是00000000
-
+0补码是00000000
-
-0原码是10000000
-
-0反码是11111111
-
-0补码是00000000
+0的原码和反码不同,但是**补码没有+0与-0之分
**
补码的优势:
①、利用补数和溢出的原理,减法变成了加法
②、符号位参与运算。
补码的运算
[x-y]补 =[x]补 - [y]补=[x]补 + [-y]补
整数和小数转换为二进制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Esu2WFnj-1657679486532)(./1553050727188.png)]](https://img-blog.csdnimg.cn/20190619143527231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NDQ3MjYx,size_16,color_FFFFFF,t_70)