全站数据
8 4 2 0 5 8 1

0为什么表示为00000000

IT才子 | 简单学习,快乐成才!         
问题更新日期:2024-10-20 06:43:40

问题描述

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