C语言中,什么是补码、源码、反码?分别怎样计算?

2024-12-01 18:35:56
推荐回答(2个)
回答1:

一、原码

求原码:X≥0,则符号位为0,其余照抄;
X≤0,则符号位为1,其余照抄。
【例1】X=+1001001 [X]原 = 01001001
【例2】X=-1001001 [X]原 = 11001001

二、反码
求反码:若X≥0,符号位为0,其余照抄;
若X≤0,符号位为1,其余按位取反。
【例3】X=+1001001 [X]反 = 01001001
【例4】X=-1001001 [X]反 = 10110110

三、补码
求补码:若X≥0,符号位为0,其余照抄;
若X≤0,符号位为1,其余取反后,最低位加1。
【例5】X=+1001001 [X]补 = 01001001
【例6】X=-1001001 [X]补 = 10110111

回答2:

正数求补码的方法 正数码型不变
负数求补码的方法 按位取反加1
正数补码求真值 正数码型不变
负数补码求真值 按位取反加1