S1E7课后题问题
#include <stdio.h>int main()
{
signed char i;
unsigned char j;
i = 255;
j = 255;
printf("signed char %hhd\n", i);
printf("unsigned char %hhu\n", j);
return 0;
}
为什么第一个输出-1? 本帖最后由 jackz007 于 2019-9-21 14:27 编辑
没错,255 显示成 signed char 就是 -1,只有显示成 unsigned char 才会是 255。这就是 signed char 和 unsigned char 的区别。
signed char 能表达的正整数的范围是 1~127,负整数的范围是 -1 ~ -128,加上 0,一共可以表达 256 个不同的整数。
signed char和 unsigned char 在 0 ~127 范围内,数值是完全相同的,超出后,unsigned char 的 128 对应于 signed char 的 -128,255 对应于 -1。
页:
[1]