当前位置:首页 > IT攻略 > 正文

0为什么表示为00000000?

简介人为计算机规定的。补码等于反码+10的原码是0x00000000因此反码是0xffffffff你对反码加1,会发现有变成了0x00000000因此补码和原码都是0x00000000在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从...

人为计算机规定的。

0为什么表示为00000000?

补码

等于

反码

+

1

0

的原码是

0x

0000

0000

因此反码是

0x

ffff

ffff

你对反码加1,会发现有变成了

0x0000

0000

因此

补码

和原码都是

0x

0000

0000在计算机中,负数以其正值的补码形式表达。

什么叫补码呢?这得从原码,反码说起。

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

比如

00000000

00000000

00000000

00000101

5的

原码。

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

取反操作指:原为1,得0;原为0,得1。(1变0;

0变1)

比如:将00000000

00000000

00000000

00000101每一位取反,

得11111111

11111111

11111111

11111010。

称:

11111111

11111111

11111111

11111010

00000000

00000000

00000000

00000101

的反码。

反码是相互的,所以也可称:

11111111

11111111

11111111

11111010

00000000

00000000

00000000

00000101

互为反码。

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

比如:

00000000

00000000

00000000

00000101

的反码是:

11111111

11111111

11111111

11111010。

那么,补码为:

11111111

11111111

11111111

11111010

+

1

=

11111111

11111111

11111111

11111011

所以,-5

在计算机中表达为:

11111111

11111111

11111111

11111011。转换为十六进制:0xfffffffb。

再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

1、先取1的原码:00000000

00000000

00000000

00000001

2、得反码:

11111111

11111111

11111111

11111110

3、得补码:

11111111

11111111

11111111

11111111

可见,-1在计算机里用二进制表达就是全1。16进制为:0xffffff。

128=10000000

按位取反:01111111

加1

:10000000

没有溢出,因为没有别的数用100

最新文章