为什么(char)433在c ++中等于-79'+ - '?

use*_*589 1 c++ debugging c++11

当我输入演员时433,char我得到了这个.如何433等于-79同时ASCII进行4&3是52&51分别按这个表.

Som*_*ude 6

十进制数433是0x1b1,并且是一个int并且通常是32位长.当你将它转换为一个会发生什么char(它通常有8位)是所有,但最低的8位刚刚扔掉,离开你0xb1是-79作为一个有符号双补的8位整数.