我不知道如何自动解锁超过 255 个字符。
char f;
f = 'k';
printf("%d\n", f);
结果为107
。不足为奇。
f += 500;
printf("%d\n", f);
结果为95
。看起来它已除以 255。
printf("%c\n", 607);
结果为_
。还有更多的字符也达到数千个。为什么添加一个值并使字符超过 255 会强制进行模运算?为了哈希函数,我需要超过 255。
最佳答案
char
是内存中的一个字节。因此,您不能存储大于 255 的值,因为它只有 8 位(假设在您的平台上,char 被定义为 8 位字节)。当值超过255时,就会溢出。
此外,您不知道 char
是无符号(值可以在 0 到 255 之间)还是有符号(值可以在 -128 到 127 之间)。
如果您想存储大于 255 的值,可以使用 char
以外的其他类型。
关于C - 为什么向字符添加数字会重置为 255?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37209362/