16进制数(负数)如何求补码

①前提内在条件:、

计算机对数据的计算方式是:采用数的补码进行直接的加减运算

在计算机系统中,数值一律用补码来表示和存储。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+

10000001=10000010,换算成十进制为-10,错误。

但是采用他们的补码:00000001+11111111=00000000.

则可以进行正常的直接加减运算。

所以:对于求补码问题。

正数的补码为他本身;

负数的补码为:

①2进制:11111111-正数的2进制码+1.

②16进制:FFFF-正数16进制码+1;

原理:正数+负数=0。而0的表示方法只有一种:00000000;0000

所以本该用,0000-正数,结果即为负数的补码。而不好减,所以把0000转化为FFFF+1,

或者11111111+1.

例:给出-100,求其16进制的补码。

先求正数100的16进制为:0X64,

然后套用公式:FFFF-0064+1=FF9C。

FF9C即为所求。

你可能感兴趣的:(补码,java,c语言,数学建模)