读书人

c语言的unsigned小疑点

发布时间: 2013-09-05 16:02:06 作者: rapoo

c语言的unsigned小问题
为什么unsigned int a = 1 << 31 打印出的数是个负数?

int main(void)
{
unsigned char c = 1 << 7;
unsigned int d = 1 << 31;
printf("%d\n", c);
printf("%d\n", d);
return 1;
}

结果为:
128
-2147483648

环境为linux,32位 c unsigned?int
[解决办法]
%d有符号
%u
[解决办法]
输出格式


printf("%u\n", c);
printf("%u\n", d);

读书人网 >C语言

热点推荐