我有两个uint32_t变量。 它们具有以下值 -
uint32_t a = 0x00002000;
uint32_t b = 0x00c00000;
我希望合并这两个变量,以便它们给出结果0000200c
。
如果我只是a+b
,则不会返回正确的结果。有人可以帮忙吗?
编辑 - 我需要将b的第31-20位设置为a的第11-0位。
答案 0 :(得分:3)
b
可以隔离(b & 0xFFF00000)
的第31-20位。
a
可以隔离(a & 0x00000FFF)
的第11-0位。
然后,在将b
变量与a
组合之前,需要将uint32_t answer = ((b & 0xFFF00000) >> 20) | (a & 0x00000FFF);
变量向右移动20位。总而言之,你得到了
<div class="div1container">
<div class="glyphicon glyphicon-plus divcontainer" data-toggle="collapse" data-target="#demo">Div1</div>
<div id="demo" class="collapse">
Div 1 Content
</div>
</div>
<div class="div2container">
<div class="glyphicon glyphicon-plus divcontainer" data-toggle="collapse" data-target="#demo2">Div2</div>
<div id="demo2" class="collapse">
Div 2 Content
</div>
</div>