我想将12位转换为C语言的十进制数.
例如,如果我们有:
A1 = 0x5D A2 = 0xA0(A2中的LSB位始终为0)
所以如果我们将这些放在一起我们有:
0x5DA,它等于1498.
你能指导我怎样才能用C做到这一点?
A1需要向左移4位,以便为A2的位留出空间,这可以通过以下方式完成A1 << 4
.
然后A2需要向右移4位以消除最低有效位中的额外零,这可以通过以下方式完成A2>>4
.
然后这两个部分可以与|
运营商结合:
(A1 << 4) | (A2 >> 4);