C语言使用%u打印整数

588 阅读1分钟

使用 %u 是以 unsigned(无符号号)的形式打印存在内存中的数字,而在内存中的正整数二进制码首位为0,负整数为1。通过 %u 读取的内容,是不识别该数字在内存中补码的第一位二进制码代表含义,从而导致负数变成无穷大。

11111111111111111111111111111111 -> 无穷大
0000000000000000000000000000011 -> 3