A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


#include <stdio.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    short a=1000000000000000;
    short b=a-1;
    short c=1000000000000000+0000000000000001;
   
   
    printf("%hd\n",a);
    printf("%hd\n",b);
    printf("%hd\n",c);
    return 0;
}-32768
32767
-32767

疑惑如下:
1:short a=1000000000000000这是源码还是补码?
2:运算的时候是源码运算还是补码运算?
3:输出的时候。是输出的源码对吗?

1 个回复

正序浏览
1.计算机是用补码来存储数据的,a肯定是补码,如果a是源码的话那应该是0啊。

2.既然计算机用补码存储数据,那运算的时候肯定是补码了。

3.输出的是十进制数啊,-32768, 32767, -32767这不明显是十进制数嘛。

不懂的可以再问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马