问题标题: 什么是位与运算

10
0
已解决
蒋智航
蒋智航
高级天翼
高级天翼

什么是位与运算?

什么是位与运算?

急急急!!!

蒋智航在2018-01-25 13:27:39追加了内容

我会选择一个最详细,描述最到位的答案采纳,

蒋智航在2018-01-25 13:28:52追加了内容

give me a程序采纳率更高哦


3
已采纳
樊澄宇
樊澄宇
新手光能
新手光能

例如,

18|52就是18和52的位与运算

18|52就是把它们都化成二进制,在按数位的从低到高进行与运算:

18=10010(二进制)

52=110100(二进制)

则18|52=

 

010010    (位数不够补0)

110100

--------

010000    (每一位分别进行与运算)

 

010000=16

18|52=16

樊澄宇在2018-01-25 13:51:52追加了内容
int a,b;
cin>>a>>b;
printf("%d&%d=%d\n",a,b,a&b);
printf("%d|%d=%d\n",a,b,a|b);

还有我有一点说错了: 

 a|b 是按位或运算

 a&b 才是按位与运算

1
王星河
王星河
资深光能
资深光能

对于两个内存区内对应的两个二进制位,当且仅当两个位均为 1 时该位运算结果为 1 ,否则为 0 。

例如:

  1001011
& 1101001
__________
  1001001

 

1
1
李颂宥
李颂宥
初级光能
初级光能

就是把十进制数化成二进制数进行计算

1
李颂宥
李颂宥
初级光能
初级光能

就是把十进制数化成二进制数进行计算

1
李颂宥
李颂宥
初级光能
初级光能

就是把十进制数化成二进制数进行计算

1
贺晓雨
贺晓雨
资深守护
资深守护

程序中的所有数在计算机内存中都是以二进制的形式的储存。说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。

110

AND 1011

---------------

0010 --> 2

有人会说,计算6 and 11没有什么实际意义啊。这一系列的文章就将告诉你,位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序。

贺小雨在2018-01-26 10:05:59追加了内容
printf("%d&%d=%d\n",a,b,a&b);
printf("%d|%d=%d\n",a,b,a|b);                      

 

1
陶梓锐
陶梓锐
新手光能
新手光能

int a,b;

 

cin>>a>>b;

 

printf("%d&%d=%d\n",a,b,a&b);

 

printf("%d|%d=%d\n",a,b,a|b);

1
阮俊雄
阮俊雄
新手光能
新手光能

就是把十进制数化成二进制数进行计算

1
周天睿
周天睿
初级光能
初级光能

位与运算就是在计算机内把十进制转化为二进制数来储存。

例如:十进制数2...................二进制10

           十进制数6...................二进制110

0
0
0
我要回答