vc++ 6.0在2147483648溢出

来源:百度知道 编辑:UC知道 时间:2024/06/07 11:26:22
我给a定义的是无符号长整形,范围应给是0~4294967295啊,为什么在2147483648就溢出了??
#include <stdio.h>
void main()
{
unsigned long a;
a=2147483648;
printf("%d\n",a);
}
结果:-2147483646

输出的时候%d是整形,所以会溢出。改为ld% 或者uld% 具体如下
#include <stdio.h>
void main()
{
unsigned long a;
a=2147483648;
printf("%uld\n",a);
}

说得真确

一楼说的对