C语言中能够实现局部翻转(0变1,1变0)的位运算是?
发布网友
发布时间:2022-05-06 01:48
我来回答
共2个回答
热心网友
时间:2022-06-28 11:52
我帮你写的三个函数,功能分别是,获得某位的值,设置某位的值,和对某位取反
bool bit_get(int n, int bit) {
return (n & (1 << bit)) != 0;
}
int bit_set(int n, int bit, bool value) {
if (value) {
n |= 1 << bit;
} else {
n &= ~(1 << bit);
}
return n;
}
int bit_not(int n, int bit) {
return bit_set(n, bit, !bit_get(n, bit));
}
热心网友
时间:2022-06-28 11:52
C语言中是用!,非号。
例如 !1就等于0
!0就等于1
希望对你有帮助。