我不确定如何自动解锁超过255的字符。
char f;
f = 'k';
printf("%d\n", f);
107
中的结果。毫不奇怪。
f += 500;
printf("%d\n", f);
95
中的结果。似乎这已经模数除以255。
printf("%c\n", 607);
_
中的结果。还有更多的角色可以扩展到成千上万。为什么添加一个值并使char超过255会强制进行模运算?为了哈希函数,我需要超过255.
答案 0 :(得分:3)
char
是内存中的一个字节。所以你不能存储值> 255因为它只有8位(假设在你的平台上,char被定义为8位的字节)。当该值大于255时,它会溢出。
此外,您不知道char
是无符号(值可以介于0到255之间)还是有符号(值可以介于-128和127之间)。
如果您想要存储值>您可以使用除char
之外的其他类型255。
答案 1 :(得分:0)
char
数据类型是8-bit
字段,最大总值为255
。如果您希望使用大于255的数字,则需要使用16-bit
值。
unsigned char
的值范围为0 to 255
signed char
的值范围为-128 to 127