-1的补码怎么算?

C语言
2024-12-31 17:27:20
推荐回答(5个)
回答1:

-1的补码为11111111

详细过程

1、通常把一个数的最高为定义为符号位,用“0”表示正,用“1”表示负。

因为【-1】为负,所以【-1】的原码=10000001

2、反码:对于负数,数符位为1,数符位不变,将数值位诸位取反为反码。

【-1】的反码=11111110

3、补码:对于负数,数符位为1,数符位不变,将反码+1=补码。

【-1】的补码=11111111

用不同二进制编码方式表示有符号数时,所得到的机器数可能不一样,但是真值是相同的。

扩展资料:

有符号数是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-” ;其余数位用作数值位,代表数值。

有符号数的表示:计算机中的数据用二进制表示,数的符号也只能用0/1表示。一般用最高有效位(MSB)来表示数的符号,正数用0表示,负数用1表示。

参考资料来源:百度百科-有符号数

回答2:

假设8位。

定点整数[-1]补:2^8+(-1)=255=1111 1111 B

定点小数[-1]补:        2+(-1)=1=1.000 0000 B


补码可以比原码多表示一个数,在定点小数中这个数是-1.

回答3:

按照补码的定义,对于负数,要用模,减去该数的绝对值。
于是:[-1]补 = 256 - 1 = 255 = 1111 1111 B

回答4:

计算机中,只有补码,没有原码反码。

常说的“取反加一”就不能进行了。

其实,求补码,是极其简单的事。

按照八位机说明如下:

数值 0,补码就是:0000 0000。

数值-1,就是:零减一。

即:0000 0000-0000 0001。

取其八位的结果,就是:1111 1111=255(十进制)。

即:-1 的补码,就是:1111 1111。

这就算完了。

简单不简单? 意外不意外?

实际上,求补码,并不需要原码和反码。

就是用这个公式:【-X 的补码 = 256 - X 】。

其中的 256,是 2^8。

回答5:

想取绝对值, 然后再算出二进制,取反,然后加一