gpt4 book ai didi

c++ - 如何在 1 字节字符中存储 2 个数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:42 25 4
gpt4 key购买 nike

我有标题的问题,但如果不是,我怎么能只用 4 位来表示一个整数呢?

编辑真的我的问题是如何。我知道在像 c 这样的语言中有 1 字节的数据结构,但是我怎么能使用像 char 这样的东西来存储两个整数呢?

最佳答案

在 C 或 C++ 中,您可以使用 struct 为变量分配所需的位数,如下所示:

#include <stdio.h>
struct packed {
unsigned char a:4, b:4;
};
int main() {
struct packed p;
p.a = 10;
p.b = 20;
printf("p.a %d p.b %d size %ld\n", p.a, p.b, sizeof(struct packed));
return 0;
}

输出为p.a 10 p.b 4 size 1,说明p只需要1个字节来存储,而大于4位的数(大于15)被截断,因此 20 (0x14) 变为 4。这比其他答案中使用的手动移位和屏蔽更简单,但可能不会更快。

关于c++ - 如何在 1 字节字符中存储 2 个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961168/

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