首页 > 代码库 > 计算机输出的数字是原码还是补码
计算机输出的数字是原码还是补码
数字在计算机中是以补码形式存储的
是否输入一个数,计算机会自动转化成补码形式存储,输出这个数时,计算机会自动把补码转换成原码显示?
例子:
#include <stdio.h>
main()
{
int b;
b=-1; printf("%d %x\n",b,b);
b=0xffffffff;
printf("%d %x\n",b,b);
b=0x8fffffff;
printf("%d %x\n",b,b);
b=0x80000001;
printf("%d %x\n",b,b);
b=0x80000002;
printf("%d %x\n",b,b);
}
输出结果:
-1的原码为0x80000001,但是输出为ffffffff
0x8fffffff对应的十进制为-268435455(第一位为符号位),输出为-1879048193,对应-0x70000001,即输出的是它的补码形式
0x80000001对应的十进制为-1,输出为-2147483647,对应-0x7FFFFFFF,即输出的是它的补码形式
0x80000002对应的十进制为-2,输出为-2147483646,对应-0x7FFFFFFE,即输出的是它的补码形式
得出结论,计算机输出的数是补码形式的。
计算机输出的数字是原码还是补码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。