如何正确比较char与0x85?

时间:2015-01-27 21:02:25

标签: c++ char hex byte

用C ++编程。 我从winsock recv的缓冲区输出char *。我这样比较有点问题。我有char。

if(a == 0x85)

不起作用,但

if(a == -123)

同样(来自debbuger)的作品.. 抱歉我的英文。

1 个答案:

答案 0 :(得分:2)

尝试

if ( a == (char)0x85 )

由于a转换为int,您的代码无效,因为在==的右侧有int类型的表达式。如果a确实是(char)0x85,而charsigned char(在所有平台上可能不是这种情况),那么a是否定的,因此{{ 1}}为负数,因此不等于(int)a

将右侧放入0x85类型的表达式中,您将度过快乐的一天! ;)