【发布时间】:2021-10-06 19:44:50
【问题描述】:
我用 C 写过代码
#include<stdio.h>
int main()
{
char a = 128;
char b = -128;
printf("%c",a);
printf("%c",b);
}
上面代码的输出是ÇÇ
使用 128 或 -128 输出结果是相同的。为什么?请尽可能使用二进制解释。
【问题讨论】:
-
{-128, 128}之一超出了 8 位 2's complementchar的范围。如果char被签名,范围是-128到127...如果是unsigned,范围是0到255。为了安全起见,请始终将您的字符保持在0和127之间。如果需要这些范围,请显式使用signed char或unsigned char。
标签: c character-encoding char output