整型

如果使用32位整型会溢出,那么是否可以使用一个40位结构体代替64位长整型?

如果使用32位整型会溢出,那么是否可以使用一个40位结构体代替64位长整型?

问题: 假如说,使用32位的整型会溢出,在不考虑使用长整型的情况下,如果我们只需要表示2的40次方范围内的数,是否可以利用某些40位长的数据类型来表示呢?这样的话,每个整型数就可以节省24位的空间。 如果可以,该怎么做? 需求是:我现在必须处理数以亿计的数字,所以在存储空间上受到了很大的限制。 回答: 可以是可以,但是 这种方法的确可行,但这么做通常没什么意义(因为几乎没有程序需要处理多达十亿的数字): #include stdint.h // 不要考虑使用long long类型 struct bad_idea { uint64_t var : 40; }; 在这里,变量var占据