【发布时间】:2016-10-16 23:11:51
【问题描述】:
我有一个 C++ 向量,其中包含来自 TCP 数据段的 uint8_t 值。我正在寻找应该在向量的第一个索引处的两个值中的一个。
我有以下 if 语句来表达我的逻辑。
if ( ui8BufferIn.at(0) != 0xE4 || ui8BufferIn.at(0) != 0xE2){
printf("\nWe have a problem, no parsing will be done, Package Type = %u\n", ui8BufferIn.at(0));
proceed = false;
}
上面的 if 语句在不应该执行的时候执行。我得到以下打印输出:
We have a problem, no parsing will be done, Package Type = 226
所以你不必做数学运算,226 作为整数是十六进制的0xE2。
我已经有一段时间了,所以它可能很简单,但任何帮助都会很棒!
【问题讨论】:
-
我怀疑你想要 && 而不是 ||。事实上,您的条件始终评估为真。
标签: c++ hex unsigned-integer