按位运算符

本文介绍了按位运算符如与(&),或(|),异或(^)在二进制中的规则,以及掩码在操作特定二进制位时的作用,包括打开、关闭、切换和检查位。还涵盖了左移和右移的概念,以及如何在C语言中处理十六进制数。
摘要由CSDN通过智能技术生成

文章如有纰漏、欢迎指正!!

按位运算符的基本运算

~取反 0变1 1变0

&与 同为1则1

|或  一个为1则1

^异或 仅一个为1则1

前期介绍:

上面是对于一位二进制1和0的运算规则,对于多位如八位二进制数,运算则是相同位进行按位运算操作

如:01000000&10111011==11111011

两个数第一位与第一位按位运算,第二位与第二位按位运算。

掩码:一个二进制数 用于对于某个二进制数字特定的位进行操作

例如00000001可用于对1号位进行操作

掩码之所以叫掩码 是因为它的0好像一层不透明膜 1好像一层透明膜 通过&运算让这个膜覆盖在一个二进制数上 掩码为0就一定为0 掩码为1就看原来那个二进制数是0还是1

操作:

1.打开特定位:

如:打开1号位 让一个掩码为(00000001)

对于二进制数10100000

只要让它|=(00000001) 就可以让它得1号位变为1 如果1号位本来就是1 则仍为1

2.关闭特定位

如:关闭1号位 让一个掩码为(00000001)

对于二进制数10100001

只要让它&=~(00000001)就可以让1号位变为0 如果1号位本来就是0 则仍为0

3.切换特定位

如:切换1号位 让一个掩码为(00000001)

对于二进制数01010001

只要让它^=(00000001) 就可以将1号位切换为0

对于二进制数01010000

只要让它^=(00000001) 就可以将1号位切换为1

4.检查特定位

如:检查二进制数01010010的2号位是否为1 则让一个掩码为00000010

可用下面的式子来判断

(01010010&00000010)==00000010

二进制数       掩码           掩码

检查检查二进制数01010010的3号位是否为0 则让一个掩码为00000100

可以将该二进制数取反 再判断3号位是否为1

(~01010010&00000100)==00000100

二进制数       掩码           掩码

左移和右移

左移:

a << n

 对于一个二进制数a 将其所有位向左移n位 末端值丢失 空出的位置0补上 相当于乘以2^n

右移:

a >> n

 对于一个二进制数a 将其所有位向右移n位 末端值丢失 空出的位置0补上 相当于除以2^n

C语言可以存储十六进制数,以0x开头 如0xff为11111111即255

输入和输出对应的符号为%x

下面是十进制、二进制、十六进制对应表,方便参考:

十进制数

二进制数

十六进制数

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

a

11

1011

b

12

1100

c

13

1101

d

14

1110

e

15

1111

f

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值