计算,使用补码

十进制数二进制原码二进制补码
1270111111101111111
1260111111001111110
20000001000000010
1000000010000001
00000000000000000
-11000000111111111
-21000001011111110
-1261111111010000010
-1271111111110000001
-12811111111110000000

特点

1.在一个数的二进制的最高位的前面一位(这里的开头第一位)加上0表示正数,加上1表示负数。

2.正数的补码 = 它的原码 = 它的反码。

3.负数的补码的求法有两种(本质是一种):
first method>:1.先求出负数绝对值(正数)的二进制表示形式;2.从此二进制数的后边往前搜索,遇到第一个数码1后,此数码1前面的数码全部取其反码,此数码1后面(包括其本身)不变;
– >>这是我们编程实现时常用的方法。 例题
second method>:处理负数的原码,把负数的符号位(这里的开头第一位)不变,数值位(符号位的后面)依次取反,末尾加一。
– >>书上的定义


补码的意义和运算:

我们运算的时候都是用的每个数的补码进行加减

补码存在的意义就是为了统一计算机加减

比如(7)+(-7)=0

7 -> 0000 0111(7的补码)

-7 -> 1111 1001(-7的补码)

所以相加为1 0000 0000(进位 – 超出的最高位默认去掉)

比如(2)+(-3)=(-1)

2 -> 0000 0010 (2的补码)

-3 -> 1111 1101 (-3的补码)

相加为 1111 1111(-1的补码)

这样我们就可以在减法运算的时候,把数化为补码进行计算,这样就在计算时统一了加减。

进位和溢出

进位:由于运算结果超出来位数,最高位有效位前面的一位进位,这一自然数丢失。
溢出:由于运算结果超出了运算范围,当c6 oxr c7 == 1(也就是第7位前面的进位数和第8位前面的的进位数 不一样)表示溢出。


八进制,十六进制的补码

对于进制位大于2的进制我们都可以把它们都变成二进制再利用之前的取反加一的方法求解。


实际应用

蓝桥杯历届真题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值