合并MSD和LSD

时间:2013-06-13 10:40:24

标签: objective-c bit-manipulation

我有两个4位十六进制值A,B和I想要创建一个8位值,其中A为MSD,B为LSD:

这是我的尝试:

  uint8_t X = (A << 4) & (B); 

我得到一个值,但不确定它是否正确。

这是一种正确的方法吗?

1 个答案:

答案 0 :(得分:0)

需要:

uint8_t X = (A << 4) | (B); 
                    ^^^

这是因为您需要将bitwise OR|)这两个值组合在一起,而不是bitwise AND&)。

有关使用按位OR组合nybble值的类似示例,请参阅this answer to your previous question