我今天尝试反转数组元素,但没有用。是否有原因,例如
uint8_t array[2] = {0xFF,0x0A};
...
if( 0xF5 == ~(array[1]){
// never got here
}
不行吗编译器未显示任何错误。
最佳答案
if(0xF5 == ~(array[1]))
发生这种情况是因为在将反转应用到
array[1]
之前,它已提升为int
。因此,当您对array[1]
的提升值应用反转时,您将获得:0xFFFFFFF5,不等于0x000000F5如前所述,如果您想进行比较,可以将等式运算符右侧的表达式转换为
uint8_t
。关于c - 反转数组元素(按位)不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33877484/