在学c++中 讲补码时 100001 怎么分别究竟是正数100001 还是负数1

2026年09月23日 07:37
有5个网友回答
网友(1):

按照补码的定义,对于负数,要用模,减去该数的绝对值。
于是:[-1]补 = 256 - 1 = 255 = 1111 1111 B
计算机吧1111 1111和-1都当做1111 1111
首先说,你不可能在程序中见到负数。
那要怎么区别呢。。
给你一个数据你根本没有办法区别出来,
只有联系上下文、进行判断。例如、
A=1111 1111B .B=0000 0010B
上面是二进制的。
其实就是A=-1.B=2你也可以认为是A=255 B=2
但是下面如果是A+B=1.
那么A=-1。。。除非他不用。要不然怎么都能知道

网友(2):

记得
正数
的补码是本身,负数的补码是
取反
+1
,你自己算一下。如果超过
位数了
1就表示符号位。比如int占
4字节
2的31次方-1
的补码应该就是-1
了。

网友(3):

如果补码的符号位为“0”,表示是一个正数
如果补码的符号位为“1”,表示是一个负数

网友(4):

一般首位是符号位,会说明到底是有符号数还是无符号数,1代表负数 ,0代表正数!

网友(5):

要看你是几位补码了,负数1的补码也不是这么表示啊