江湖风云录 战国策:一个简单的c语言问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 05:53:05
在turbo c 3·0环境下运行
#include<stdio.h>
void main()
{
long a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
怎么输出结果是32767,0
得不到32767,32768

应该改为
void main()
{
long a,b;
a=32767;
b=a+1;
printf("%ld,%ld\n",a,b);
}
%ld这是格式说明,按照长整型数的格式输出.

%d,%d这里不要用逗号

你知道是为什么吗?我知道了。long在tc 3.0的情况下带符号的16位整型变量。最前面一位是表示正负的。所以32768,二进制是1000,0000,0000,0000,去掉最前面的1,就剩下0了。你如果定义为unsigned long,那么就可以打印32768了。

变量在使用前应先赋初值b=0

最前面一位是表示正负的。所以32768,二进制是1000,0000,0000,0000,去掉最前面的1,就剩下0了,