类型转换尚在计算之前

在看CRC从原理到实现时,被一段代码困惑了,大约如下

short sval;
char cval = 0x40;
sval = cval << 8;


运行结果大出所料,结果=16384,相应二进制为1后面跟14个0,而不是之前认为的0。看样子,char类型的cval在做任何计算与赋值前先转换为了short类型,而不是计算完cval<<8再将结果转换类型。



你可能感兴趣的:(类型转换尚在计算之前)