C++ 逻辑运算、位运算

C++ Gossip: 逻辑运算、位运算

 

一、逻辑运算

 

  在逻辑上有所谓的“且”、“或”与“反”运算,在C++中也提供这几个基本逻辑运算所需的“逻辑运算符”(Logical operator),分别为“且”(&&)、“或”(||)及“反相”(!)三个运算符。

来看看下面这个程序会输出什么?

int num = 75;
cout <<  (num > 70 && num < 80) << endl;
cout << (num > 80 || num < 75) << endl;
cout << !(num > 80 || num < 75) << endl;


三段程序分别会输出1、0与1,也就是分别表示true、false与true三种状况。

       &&运算中,如果左边的条件已经被评断为false,则可立即判断整个式子为false,因而右边的条件就不会再评断; || 运算中如果左边的条件已经被评断为true,则可以判断整个式子为true,因而右边的式子就不会再判断。

二、位运算


     “位运算符”(Bitwise operator),数字设计上有AND、OR、NOT、XOR与补码等运算,在C++中提供这些运算的就是位运算符,它们的对应分别是AND (&)、OR(|)、NOT(!)、XOR(^)与补码(~)。

 

如:

 

    cout << "AND运算:" << endl;
    cout << "0 AND 0/t/t" << (0 & 0) << endl;
    cout << "0 AND 1/t/t" << (0 & 1) << endl;
    cout << "1 AND 0/t/t" << (1 & 0) << endl;
    cout << "1 AND 1/t/t" << (1 & 1) << endl;
    cout << "OR运算:" << endl;
    cout << "0 OR 0/t/t" << (0 | 0) << endl;
    cout << "0 OR 1/t/t" << (0 | 1) << endl;
    cout << "1 OR 0/t/t" << (1 | 0) << endl;
    cout << "1 OR 1/t/t" << (1 | 1) << endl;
    cout << "XOR运算:" << endl;
    cout << "0 XOR 0/t/t" << (0 ^ 0) << endl;
    cout << "0 XOR 1/t/t" << (0 ^ 1) << endl;
    cout << "1 XOR 0/t/t" << (1 ^ 0) << endl;
    cout << "1 XOR 1/t/t" << (1 ^ 1) << endl;
    cout << "NOT运算:" << endl;
    cout << "NOT 0/t/t" << (!0) << endl;
    cout << "NOT 1/t/t" << (!1) << endl;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值