〃忝書γě渎ぐ 发表于 2019-11-27 10:09:45

位与运算问题

#include <iostream>
using namespace std;

int main()
{
    short a = 23; // 10111
    short b = 33; //100001
    short c = 0;
    c = a & b;   
    cout<<c<<endl; //为什么结果是1,而不是32? &的空位就为0吗?C++哪在这方面是怎么定义的?

    return 0;
}

bin554385863 发表于 2019-11-27 10:09:46

本帖最后由 bin554385863 于 2019-11-27 14:21 编辑

C++的位运算和C是一样的
或|:   0|1 = 1, 1|0 = 1,1|1 = 1;
异活^:    0^1 = 1, 1^0 = 1, 1^1 = 0, 0^0 = 0
非!:    ~1 = 0, ~0 = 1;
与:&:    0|1 = 0, 1|0 = 0,1|1 = 1;

23 = 010111
&
33 = 100001
-------000001
1
页: [1]
查看完整版本: 位与运算问题