16位有符号

1.
16位有符号
补码最大的数为0111 1111 1111 1111,其原码跟他一样(正数原码补码相同),最小的数为1000 0000 0000 0000;
其范围是-(2^15)~(2^15-1),即-32768~32767

1 0x0001 0b0000000000000001
……
32766 0x7ffe 0b0111111111111110
32767 0x7fff 0b0111111111111111
-32768 0x8000 0b1000000000000000
-32767 0x8001 0b1000000000000001
-32766 0x8001 0b1000000000000010
……
-3 0xFFFd 0b1111111111111101
-2 0xFFFe 0b1111111111111110
-1 0xFFFF 0b1111111111111111

2.
补码的加法运算规则

[X+Y]补= [X]补+[Y]补

【32767】补 + 【-32768 】= 0b0111111111111111
+0b1000000000000000
=0b1111111111111111=【-1】补

补码的减法运算规则

[X-Y]补=[X]补+[-Y]补
一般称已知[Y]补求得[-Y]补的过程叫变补或求负
已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1。

[-(-1)]补 = 0b1111111111111111 全部位(含符号位)按位取反后再加1 =0b0000000000000001

【1-(-1)】补=【1】补 + [-(-1)]补 = 0b0000000000000001 + 0b0000000000000001 = 0b0000000000000002

3.
溢出讨论

a.两个符号相同的补码数相加,如果和的符号与加数的符号相反

【32767】补 + 【32766 】补= 0b0111111111111111
+ 0b0111111111111110
=0b1111111111111101=【-3】补

b.两个符号相反的补码数相减,差的符号与减数的符号相同
【32767】补 - 【-32766 】补=【32767】补 + 【-(-32766) 】补=【32767】补 + 【32766 】补
0b0111111111111111
+ 0b0111111111111110
=0b1111111111111101=【-3】补

溢出及补码溢出的判断 无论采用何种机器数,只要运算的结果大于数值设备所能表示数的范围,就会产生溢出. 溢出现象应当作一种故障来处理,因为它使结果数发生错误.异号两数相加时,实际是两数的绝对值相减,不可能产生溢出,但有可能出现正常进位;同号两数相加 时,实际上是两数的绝对值相加,既可能产生溢出,也可能出现正常进位. 由于补码运算存在符号位进位自然丢失而运算结果正确的问题,因此,应区分补码的溢出与正常进位.

[例] 某数字设备用五位二进制表示数,计算
(1)9+3 (2)-9-3 (3)9+12 (4)-9-12
(1)[+9]补+[+3]补= 01001+ 00011 = 01100 = +12 正确;
(2)[-9]补+[-3]补= 10111+ 11101 = 110100 = 10100(符号位进位自然丢失),其真值为-1100 = -12正确;
(3)[+9]补+[12]补= 01001 + 01100 = 10101 其真值为-1011 =-11错误,产生了溢出;
(4)[-9]补+[-12]补 = 10111+10100 = 101011 其真值为01011= +11 错误,产生了溢出.
(1)、(2)两题结果均正确,查其最高位和次高位的进位位,不是均无进位产生,就是均产生进位;
(3)、(4)两题结果均错误,查其最高位和次高位的进 位位,只有一位产生了进位.此即为判断机器是正常进位还是溢出的基本依据,在微型机中可用异或电路来实现上述的判断.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值