You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.3 KiB
1.3 KiB
16
进制数(负数)如何求补码
计算机对数据的计算方式是:采用数的补码进行直接的加减运算。
在计算机系统中,数值一律用补码来表示和存储。使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0
,而在二进制中
00000001+10000001=10000010
,换算成十进制为-2
,错误。
但是采用他们的补码: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
即为所求。
回到本题
整数-5
的16
位补码表示是
① 先求正数5
的16进制为0X05
② 套用公式FFFF-0005+1=FFFB
所以,答案选择 D