码迷,mamicode.com
首页 > 其他好文 > 详细

计算机输出的数字是原码还是补码

时间:2016-11-22 02:48:53      阅读:1360      评论:0      收藏:0      [点我收藏+]

标签:span   例子   http   com   blog   src   printf   print   计算机   

数字在计算机中是以补码形式存储的

是否输入一个数,计算机会自动转化成补码形式存储,输出这个数时,计算机会自动把补码转换成原码显示?

例子:

#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,即输出的是它的补码形式

 

 

得出结论,计算机输出的数是补码形式的。

计算机输出的数字是原码还是补码

标签:span   例子   http   com   blog   src   printf   print   计算机   

原文地址:http://www.cnblogs.com/betterluo/p/6087654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!