我有两个4位十六进制值A,B和I想要创建一个8位值,其中A为MSD,B为LSD:
这是我的尝试:
uint8_t X = (A << 4) & (B);
我得到一个值,但不确定它是否正确。
这是一种正确的方法吗?
答案 0 :(得分:0)
需要:
uint8_t X = (A << 4) | (B);
^^^
这是因为您需要将bitwise OR(|
)这两个值组合在一起,而不是bitwise AND(&
)。
有关使用按位OR组合nybble值的类似示例,请参阅this answer to your previous question。