考试知识点位运算

深入理解位运算

在C++编程的世界里,位运算作为一种直接对二进制位进行操作的运算方式,虽然不像加减乘除等算术运算那样广为人知,却在许多关键领域发挥着至关重要的作用。从底层系统开发到高效算法设计,位运算都展现出其独特的魅力与强大的功能。同时,掌握一些位运算的小技巧,在考试涉及相关计算时能帮助我们快速得出答案。

一、位运算基础

(一)按位与(&)

按位与运算会对两个操作数对应的二进制位进行比较,只有当两个对应位都为1时,结果位才为1,否则为0。例如,5(二进制为00000101)与3(二进制为00000011)进行按位与运算:

#include <iostream>
int main() {
   
   
    int a = 5;
    int b = 3;
    int result = a & b;
    std::cout << "5 & 3 的结果是: " << result << std::endl;
    return 0;
}

在这个例子中,00000101与00000011按位与后得到00000001,即结果为1。按位与运算常用于掩码操作,比如提取一个整数特定的二进制位。

(二)按位或(|)

按位或运算与按位与相反,只要两个对应位中有一个为1,结果位就为1,只有当两个对应位都为0时,结果位才为0。还是以5和3为例:

#include <iostream>
int main() {
   
   
    int a = 5;
    int b = 3;
    int result = a | b;
    std::cout << "5 | 3 的结果是: " << result << std::endl;
    return 0;
}

00000101与00000011按位或后得到00000111,即结果为7。按位或运算常被用于设置某些二进制位为1。

(三)按位异或(^)

按位异或运算当两个对应位不同时,结果位为1,相同时结果位为0。同样对5和3进行操作:

#include <iostream>
int main() {
   
   
    int a = 5;
    int b = 3;
    int result = a ^ b;
    std::cout << "5 ^ 3 的结果是: " << result << std::endl;
    return 0;
}

00000101与00000011按位异或后得到00000110,即结果为6。按位异或有一个有趣的特性,就是对同一个数进行两次异或操作会得到原数,这在数据加密等领域有应用。

(四)按位取反(~)

按位取反是一元运算符,它将操作数的每一位都取反,0变为1,1变为0。例如对5进行按位取反:

#include <iostream>
int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值