16位数求补码为什么高8位取反后不加1

如题所述

若是正数,原码=反码=补码,无须取反加1的操作;
.
求负数补码方法是:
将除符号位之外的数值位取反,再在低8位的末位+1,举例如下:
[-46d]原 =1000 0000 0010 1110b
[-46d]反 =1111 1111 1101 0001b
[-46d]补 =1111 1111 1101 0010b
注:后缀d表示十进制数,后缀b表示二进制数。追问

多谢解答啊,但是我要问的是编程时问题,程序是分高低8位来取反的,但高8位不加一,却是加0,请问该如何解释!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-04
原16位数未负数,求补码是取反后加1,也就是加
0000 0000 0000 0001h
对应就是低八位取反不带进位加1,高8位取反加进位

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网