位运算:与 或 异或 反 左移 右移运算符的用途

本文详细介绍了位运算符的用途,包括清零、判断奇偶、取指定位、翻转位等,并举例说明了如何使用与、或、异或、取反、左移和右移运算。此外,还探讨了在不同长度数据进行位运算时的处理方式,为理解二进制操作提供了实用指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 与运算符的用途

1.1 清零

与一个各位都为零的数值想与,结果为零

123 & 0
// 0
1.2 判断奇偶
123 & 1
// 1
122 & 1
// 0
1.3 取一个数的指定位

比如取数X = 1010 1110 的低4位,只需要找一个数Y,令Y的低四位为1,其余位为0,即Y = 0000 1111

1010 1110 & 0000 1111
//0000 1110

比如取数X = 1010 1110 的第3位,只需要找一个数,令Y的第3位为1,其余位为0,即Y = 0000 0100

1010 1110 & 0000 0100
// 100
1010 1010 & 0000 0100
// 0
4 将二进制最后一个1变成0
x = x & (x - 1)
// 101 & (100) = 100
// 110 & (101) = 100

比特数题目

2 或运算的用途

2.1 将一个数据的某些位置设置为1
比如将数X = 1010 1110 的低四位 设置为 1,只需要另找一个数Y,令Y的低4位为1,其余位为0,即Y = 0000 1111

1010 1110 | 0000 1111
// 1010 1111

3 异或运算性质

3.1 交换律
3.2 结合律 a ^ b ^ c == a ^ (b ^ c)
3.3 对于任何数,都有 X ^ X = 0 X ^ 0 = X
3.4 自反性 a ^ b ^ b = a ^ 0 = a

4 异或运算的用途

4.1 翻转指定位
比如将数X = 1010 1110 的低4位进行翻转,只需要另外找一个数Y,令Y的低4位为1,其余位为0,即Y = 0000 1111

1010 1110 ^ 0000 1111
// 1010 0001

4.2 与0相异或值不变

5 取反运算符

取反运算符的优先级大于 算数运算符、关系运算符、逻辑运算符
5.1 使X的最低为为0

X & ~1
// ~1 的值为 1111 1111 1111 1110

6 左移运算符

将一个数的各二进制位全部左移若干位,左边的二进制舍弃,右边补0
若左移时舍弃的高位不包括1,则每左移1位相当于该数乘二

7 右移运算符

将一个数的各二进制位全部右移若干位,右边的二进制舍弃,左边正数补0,负数补1
每右移1位相当于该数除二

8 不同长度的数据进行位运算,系统会将二者右对齐后,进行位运算

左边不足的位依次补
8.1 整型数据为正数,左边补0
8.2 整型数据为负数,左边补1
8.3 整型数据为无符号数,左边补0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值