验证:数据在计算机内存中以补码形式存储

#include<stdio.h>
int main()
{
	unsigned int a = -10;
	printf("%u", a);
}

这个程序的输出是什么?

我们定义了一个无符号整型变量a,并赋值-10,可是-10是有符号的,结果是怎样的的呢?

运行可得到这个数 :4294967286

好奇怪哦。

我们来看-10的原码,反码,补码

原10000000 00000000 00000000 00001010

反11111111 11111111 11111111 11110101

补11111111 11111111 11111111 11110110

由于是无符号数,第一位为有效数字,我们计算可得补码代表的十进制数值为

2的32次方-1-1-8,这个数字恰好为4294967286.

由此证明数据在计算机内存中以补码形式存储。

猜你喜欢

转载自blog.csdn.net/m0_63742310/article/details/123461281