微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C语言中设置、清除、切换和检查单个位?

设置第 N 位
设置第 N 位意味着如果第 N 位为 0,则将其设置为 1,如果为 1,则保持不变。 在 C 中,按位或运算符 (|) 用于设置整数数据类型的位。 据我们所知| (按位或运算符)计算一个新的整数值,其中每个位的位置只有当操作数(整数类型)在该位置为 1 时才为 1。
简而言之,如果其中任何一位为 1,则可以说两位的“按位或”始终为 1。

0 | 0 = 0
1 | 0 = 1
0 | 1 = 1
1 | 1 = 1

设置位的算法:

Number | = (1UL << nth Position);

清除位
清位意味着如果第 N 位为 1,则将其清为 0,如果为 0,则保持不变。 按位与运算符 (&) 用于清除位整数数据类型。 如果其中任何一位为零,则两位的“与”始终为零。

0 & 0 = 0
1 & 0 = 0
0 & 1 = 0

清除位的算法:
要清除第 n 位,首先,需要反转位串,然后将其与数字相加。

Number  &=  ~(1UL << nth Position);

检查位
要检查第 n 位,请将第 n 个“1”位置向左移动,然后将其与数字“与”。
检查位的算法如下:

Bit = Number & (1UL << nth)

切换位
切换位表示如果第 N 位为 1,则将其更改为 0,如果为 0,则将其更改为 1。按位异或 (^) 运算符用于切换整数数据类型的位。 要切换第 n 个位移位,请将第 n 个位置的“1”向左移动并“异或”它。

0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0

切换位的算法:

Number  ^=  (1UL << nth Position);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐