C++菜鸟教程.位运算(& | )

位运算是基于二进制基础上进行的运算

一.与 &

                需输入两个数,我们称其为a和b

        1.计算方法

                第一步.将a和b转为二进制

                第二部.将其二进制的每一位(符号位除外)进行比较,若都为1,该位仍为1;若有1或2个0,该          位变为0

                第三部.将其转换为十进制

        2.流程图

                设a为7,b为2

                第一步.

                        将7转为111,将2转为10                (即都转为其二进制)

                ※第二步.

                        7→    111

                        2→    010           ※这里进行了补位(红色的0)

                        结果:  010 

                解析:         

                        111  010  有1个0,结果为0

                        111  010  都是1,结果为1

                        111  010有1个0,结果为0

                        结果:  010 

                第三步.转为十进制

                        驱0: 010   变为:10

                        转成十进制:2

                        所以,(7&2)=2

                (这真是一个伟大的发现......)

        3.代码

#include <iostream>
using namespace std;
int a,b,c;
int main(){
    a=7,b=2;
    c=(a&b);       //千万别忘加括号
    cout<<c;
    return 0;
}

                看看结果,是不是2

二.或 |

                需输入两个数,我们还称其为a和b

        1.计算方法

                第一步.将a和b转为二进制

                第二部.将其二进制的每一位(符号位除外)进行比较,若有1,2个1,该位仍为1;若有2个0,该          位为0

                第三部.将其转换为十进制

        2.流程图

                设a为8,b为5

                第一步.

                        将8转为1000,将5转为101                (即都转为其二进制)

                ※第二步.

                        8→    1000

                        5→    0101           ※这里进行了补位(红色的0)

                        结果:  010 

                解析:         

                        1000  0101  有1个1,结果为1

                        1000  0101  有1个1,结果为1

                        1000  0101  有2个0,结果为0

                        1000  0101  有1个1,结果为1

                        结果:  1101 

                第三步.转为十进制

                        转成十进制:13

                        所以,(8|5)=13

                (这又是一个伟大的发现......)

        3.代码

#include <iostream>
using namespace std;
int a,b,c;
int main(){
    a=8,b=5;
    c=(a|b);       //千万别忘加括号*2
    cout<<c;
    return 0;
}

​

                看看结果,是不是13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值