C++中的位运算和操作符(运算符)重载 《从C语言过渡到C++和虚幻引擎中的C++编程》教程⑤

本文介绍了C++中的位运算,包括按位与、按位或、按位异或和取反操作,以及左移和右移运算。同时讨论了操作符重载的概念,举例说明如何通过重载实现自定义的运算行为,如向量相加。文章还解释了C++中cout和cin使用<<和>>作为输入输出操作符的原因。

前言

在初学C++的时候,你们可能会困惑cout和cin为什么要用<<和>>这种奇怪的操作符号,其实<<和>>在C语言和C++中原本都是左移和友移的位运算符号。只是在中重载来当作输入输出符号罢了。

众所周知,学校里教的C语言非常皮毛,很多学校的C语言课连位运算可能都没讲。所以这里补充下C/C++中的位运算的知识。

位运算

按位与运算(运算符为&)

在高中的时候,我们学逻辑关系的时候,我们知道命题A且命题B(或者说命题A与B)也就是: A ⋀ B A\bigwedge B AB,只有在A和B都为真的时候才成立。
在计算机学科中,我们往往用1表示真命题,用0表示假命题。
那么就有:

  • 1 ⋀ 1 = 1 1\bigwedge 1=1 11=1
  • 1 ⋀ 0 = 0 1\bigwedge 0=0 10=0
  • 0 ⋀ 1 = 0 0\bigwedge 1=0 01=0
  • 0 ⋀ 0 = 0 0\bigwedge 0=0 00=0

而二进制数A与B进行按位与,就是让两个数的对应位上的二进制数字进行“且”的操作,而空位视为0.
例如:

10&01==0
11&1==1//第二个数字比第一个数字位数少一位,就把空位视为0和其进行“且”的操作
10001&100==0
11111&11==11

C++代码:

#include<iostream>
using namespace std;
int main()
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值