为什么(char)433等于C++中的-79′+-?

为什么(char)433等于C++中的-79′+-?,c++,debugging,c++11,C++,Debugging,C++11,当我输入cast433到char时,我得到了。 根据表,433如何等于-79,而4和3的ASCII分别是52和51。十进制数433是0x1b1,是一个整数,通常是32位长。当您将其强制转换为通常有8位的字符时,除了最低位的8位之外,其他所有字符都被丢弃,剩下的0xb1是-79,是一个有符号的8位整数。十进制数433是0x1b1,是一个整数,长度通常为32位。当您将其转换为通常有8位的字符时,除了最低的8位之外,其他所有字符都被丢弃,剩下的0xb1是-79的有符号8位整数。这被称为溢出,因为字符变

当我输入cast433到char时,我得到了。 根据表,433如何等于-79,而4和3的ASCII分别是52和51。

十进制数433是0x1b1,是一个整数,通常是32位长。当您将其强制转换为通常有8位的字符时,除了最低位的8位之外,其他所有字符都被丢弃,剩下的0xb1是-79,是一个有符号的8位整数。

十进制数433是0x1b1,是一个整数,长度通常为32位。当您将其转换为通常有8位的字符时,除了最低的8位之外,其他所有字符都被丢弃,剩下的0xb1是-79的有符号8位整数。

这被称为溢出,因为字符变为0-255。嗯,字符可以是有符号的,也可以是无符号的,所以它的范围是-128到127,或0到255表示八位字符。“3”和“4”的ASCII值与此无关。如果你把这些带到图片中,它会像char52=='4'。你选择了一个超出范围的数字,而不是52。该数字的数字与字符无关,就像5和2与“4”无关。它被称为溢出,因为字符为0-255。好的,字符可以是有符号的或无符号的,所以它的范围是-128到127,或者8位字符为0到255。“3”和“4”的ASCII值与此无关。如果你把这些带到图片中,它会像char52=='4'。你选择了一个超出范围的数字,而不是52。该数字的数字与字符无关,就像5和2与“4”无关一样。