C++的一些运算符

一、位运算符

1、按位与运算符(&)

描述

(&): 对两个参与运算的对象,按照二进制位进行(与)运算。
运算规则:

aba & b
000
010
100
111

【运算口诀:一假同假。(只要有一个是假的,结果即为假。(当a、b全为真时,结果才为真))】
e.g. :3 & 6, 3 = 0011, 6 = 0110 ,0011 & 0110 = 0010.
所以,3 & 6 = 2

用法

1 求一个数的二进制

int n = 9;
    while (n){
        cout << (n & 1);
        n = n >> 1;
    }

输出结果:1001

2、按位或运算符(|)

描述

(|): 对两个参与运算的对象,按照二进制位进行(或)运算。
运算规则:

aba | b
000
011
101
111

【运算口诀:一真同真(只要是一个为真,结果即为真, (当a、b全为0时,结果为假))】
e.g.: 3 & 6, 3 = 0011, 6 = 0110 ,0011 | 0110 = 0111.
所以,3 | 6 = 7.

用法

暂无

3、异或运算符(^)

描述

对参与运算的两个对象,按二进制位进行(异或)运算。
运算规则:

aba^b
000
011
101
110

【口诀:相异为真(如果两个的真值不同,则结果为真,如果两个的真值相同,结果位假】

用法

1.将字符转为数字;

char c;
int x = c ^ 48;
cout << x << endl;

结果:

c = `0`, x = 0;
c = `1`,    x = 1;
......
c = `9`,    x = 9;
c = `a`,    x = 81;

4、取反运算符(~)

描述

(~):对一个参与运算的对象,按照二进制位进行(取反)运算。
运算规则:

a~a
01
10

【运算口诀:(对真值取反(0 变成 1, 1 变成 0)】

用法

1.使一个数的最低位为0, 可以表示为:a&~1.
解释:~1的值为1111 1111 1111 1110, 再按”与“运算,最低位一定为0。因此~的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。

5、右移运算符(>>)

描述

(>>)将一个参与运算的对象的各二进制位全部右移若干位(右边的二进制位丢弃,左边补零(也相当于除以若干次2)

a左移位数na >>= n二进制表示
150151111
15170111
15230011
15310001
15400000

用法

暂无

6、左移运算符(<<)

描述

(<<) 将参与运算的对象的各二进制位全部向左移若干位(左边的二进制位丢弃,右边的二进制位补零(相当于乘上若干次2)

a左移位数na <<= n二进制表示
0000000
1010001
1120010
1240100
1381000

用法

暂无

参考1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值