C语言unsigned int问题

#include <stdio.h>
    void main()
    {
            unsigned int x = -5;
            printf("%d", x);
        }

结果为什么是-5,不是unsigned么,它在二进制中是怎么操作的,不会变成比5大的数吗?

 

因为就是-5啊,你输出的是【%d】,表示把x当成按照有符号整数格式输出。
你要是想要按照无符号输出,应该是【%u】,结果就是4294967291

posted @ 2020-03-05 06:06  chenlife  阅读(366)  评论(0编辑  收藏  举报