【问题标题】:Multiple bitwise operators in one line一行中的多个位运算符
【发布时间】:2013-01-24 20:28:19
【问题描述】:

好的,我正在尝试将所有这些较小的数字塞进一个 32 位数字中,全部放在一行中。由于 a 是 101,b 是 001,d 是 011,我认为 an or 与所有这些变化会返回给我 101001011 或 331。但 cout 返回 1。

int main()
{
    int a, b, c, d;
    a = 5;
    b = 1;
    d = 3;
    c = 0;

    c = ( 0 || a << 8 || b << 5 || d << 2 );
    cout << c;
    system("PAUSE");
}

【问题讨论】:

    标签: binary operators bit-manipulation


    【解决方案1】:

    您使用的是逻辑“或”。你的结果是“真的”。使用单管道“|”

    c = ( 0 | a << 8 | b << 5 | d << 2 );
    

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多