gpt4 book ai didi

c - C 中的位结构

转载 作者:行者123 更新时间:2023-11-30 15:41:03 25 4
gpt4 key购买 nike

我必须存储出现在某处的 0-127 范围内的值。因此,我认为将其存储在大小为 128 位的类型中,这样,如果该位“打开”,则数字会出现,如果不是,则数字会丢失。例如。如果第一个、第六个和第九个是 1,则出现数字 1、6、90。

如何在c中通过typedef类型定义精确包含128位的类型?

最佳答案

(以下解决方案仅限于 Mac OS X 等 BSD 系统。)

您可以使用<bitstring.h>中的位串操作宏。 。示例:

int numBits = 128;

bitstr_t mybits[bitstr_size(numBits)];
// Alternatively: dynamic allocation:
// bitstr_t *mybits = bit_alloc(numBits);

// Set bits:
bit_nclear(mybits, 0, numBits - 1);
bit_set(mybits, 1);
bit_set(mybits, 6);
bit_set(mybits, 90);

// Test bits:
for (int i = 0; i < numBits; i++) {
if (bit_test(mybits, i)) {
printf("%d ", i);
}
}

关于c - C 中的位结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703179/

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