码迷,mamicode.com
首页 > 其他好文 > 详细

补码的零碎东西

时间:2016-10-07 20:28:19      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

补码的产生原因:10000000被规定成了-128
使用补码的原因:化减法为加法和避免-0
注意点:取反符号位不取反,但not符号位要去反;进位时符号位也要进位;10000000被规定了是-128;0的补码是0
补码反码的储存方式:计算机用$0000到$7FFF依次表示0到32767的数,剩下的$8000到$FFFF依次表示-32768到-1的数。32位有符号整数的储存方式也是类似的。稍加注意你会发现,二进制的第一位是用来表示正负号的,0表示正,1表示负。这里有一个问题:0本来既不是正数,也不是负数,但它占用了$0000的位置,因此有符号的整数类型范围中正数个数比负数少一个。对一个有符号的数进行not运算后,最高位的变化将导致正负颠倒,并且数的绝对值会差1。也就是说,not a实际上等于-a-1。这种整数储存方式叫做“补码”。
11111111+01111111=01111111-10000001(原)=-254
01111110:126
01111111:127
10000000:-128
10000001:-127
(不是因为补码的性质,10000000才是-128,而是-128创造出了补码)

补码的零碎东西

标签:

原文地址:http://www.cnblogs.com/MyNameIsPc/p/5936556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!