在c中添加2个字符的问题

时间:2015-10-22 06:34:07

标签: c character-encoding

我目前正试图在c中添加2个字符。

char a = 127;
char b = 127;
char c = a + b;

printf("%d\n", c);
打印出4294967278的

,我实际上遇到了问题,我将2个数字加在一起,结果的ASCII值大于127,这里发生了什么?不是8位或256位可能的数字?所以添加小于256的值应该不起作用吗?

1 个答案:

答案 0 :(得分:2)

可能是因为您的charsigned并且可以保存-128到127之间的值。使用

char c = a + b;

您有signed char溢出和溢出会导致未定义的行为。您可以使用unsigned char来解决问题:

unsigned char c = a + b;