Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++位运算符

作者:夜雨行空   发布日期:2025-04-24   浏览:105

#include <iostream>

int main() {
    // 位运算符示例

    int a = 60;  // 60 = 0011 1100 
    int b = 13;  // 13 = 0000 1101 

    // 按位与 (&)
    int c = a & b;       // 12 = 0000 1100
    std::cout << "a & b = " << c << std::endl;

    // 按位或 (|)
    c = a | b;           // 61 = 0011 1101
    std::cout << "a | b = " << c << std::endl;

    // 按位异或 (^)
    c = a ^ b;           // 49 = 0011 0001
    std::cout << "a ^ b = " << c << std::endl;

    // 按位取反 (~)
    c = ~a;              // -61 = 1100 0011
    std::cout << "~a = " << c << std::endl;

    // 左移 (<<)
    c = a << 2;          // 240 = 1111 0000
    std::cout << "a << 2 = " << c << std::endl;

    // 右移 (>>)
    c = a >> 2;          // 15 = 0000 1111
    std::cout << "a >> 2 = " << c << std::endl;

    return 0;
}

解释说明:

  1. 按位与 (&):两个操作数中,只有当相应位都为 1 时,结果的该位才为 1

    • 60 & 13 的二进制表示为 0011 1100 & 0000 1101 = 0000 1100,即十进制的 12
  2. 按位或 (|):两个操作数中,只要有一个位为 1,结果的该位就为 1

    • 60 | 13 的二进制表示为 0011 1100 | 0000 1101 = 0011 1101,即十进制的 61
  3. 按位异或 (^):两个操作数中,只有当相应位不同时,结果的该位才为 1

    • 60 ^ 13 的二进制表示为 0011 1100 ^ 0000 1101 = 0011 0001,即十进制的 49
  4. 按位取反 (~):将每个位取反,1 变成 00 变成 1

    • ~60 的二进制表示为 ~0011 1100 = 1100 0011,即十进制的 -61(注意符号位)。
  5. 左移 (<<):将所有位向左移动指定的位数,右边用 0 补齐。

    • 60 << 2 的二进制表示为 0011 1100 << 2 = 1111 0000,即十进制的 240
  6. 右移 (>>):将所有位向右移动指定的位数,左边用符号位补齐。

    • 60 >> 2 的二进制表示为 0011 1100 >> 2 = 0000 1111,即十进制的 15

上一篇:c++20 协程

下一篇:c++ make_unique

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

c++ weak_ptr

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站