gpt4 book ai didi

c - 如何打开次要位?

转载 作者:行者123 更新时间:2023-12-04 10:49:42 26 4
gpt4 key购买 nike

aunsigned int:

unsigned int a = 188; // 10111100

是否有内置函数来获取打开的次要位?例如:在 a 情况下应该返回 2,因为第一位和第二位是 0 但第三位是 1.

// 10111100
// ^
// |-- Minor bit turn on

我使用的是 GCC 和 C99 标准。

最佳答案

简单干净的解决方案:

#include <stdio.h>

int minor_bit(unsigned int x);

int main() {
unsigned int a = 188;
printf("%d\n", minor_bit(a));
return 0;
}

int minor_bit(unsigned int x) {
unsigned int i;
if (x == 0)
return -1;
for (i = 0; !(x & 1U << i); i++);
return i;
}

关于c - 如何打开次要位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18967317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com