您的位置:首页 > 理论基础

关于计算机中的原码、反码、补码的区别

2017-10-12 10:53 369 查看
数字在计算机中都是用二进制表示的。数字有有符号和无符号之分,所以需要分正负。

正数的原码、反码和补码是一样的。

负数则不一样,最高位用1来表示符号位,为负。

反码:符号位不变,其他位按位取反。

补码:反码+1。

实验证明,用原码和反码来进行负数的运算并不完全正确,用补码则没有问题。例如20-18,先计算20和(-18)的补码,然后相加,再还原出原码即可。20为正数,补码和原码相同是00010100。-18的原码是10010010,反码是11101101,补码是11101110,然后00010100+11101110=00000010,因为补码结果是正数,所以原码也是00000010,即为十进制的2。

注意:当反码和补码是正数时,原码也是正数,且和反码、补码相同;当反码和补码是负数时,再根据补码运算法则反向求出原码即可(补码-1,然后除符号位外按位取反即可)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 计算机