有没有办法使用按位运算符组合数字位?

时间:2018-02-22 02:28:20

标签: c

例如,我有两位数字:

0b0111111
0b0000110

我想将一个状态变量移位7位并将它们组合在一起。

0b00001100111111

我可以通过转移完成吗?

4 个答案:

答案 0 :(得分:6)

你可以通过将底部数字左移7位,然后对结果和第一个数字执行按位OR来完成此操作。

unsigned int a = 0x3f;
unsigned int b = 0x06;
unsigned int result = (b << 7) | a;

答案 1 :(得分:0)

<div id="slider">
  <ul class="slides">
    <input type="radio" name="radio-btn" id="img-1" checked />
    <li class="slide-container">
      <div class="slide">
        <img src="images/slider01.jpg" />
      </div>
      <div class="nav">
        <label for="img-6" class="prev">&#x2039;</label>
        <label for="img-2" class="next">&#x203a;</label>
      </div>
    </li>
</div>

答案 2 :(得分:0)

unsigned int X = 0b00111111;
unsigned int Y = 0b00000110;

unsigned int Z = ((X << 7) & 0xFF00) | Y;

答案 3 :(得分:-1)

int a = 0b0111111;
int b = 0b0000110;

int combined = (a << 7) | b;