首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言的unsigned小疑点

2013-09-05 
c语言的unsigned小问题为什么unsigned int a 1 31 打印出的数是个负数?int main(void){unsigned char

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); 

热点排行