这里有一些想法。我正在学习,所以可能会出现错误,甚至会遗漏一些基础知识。
sizeof
运算符返回字节数。number of bits in byte
不是恒定值(纠正我,但它是 char 的位数)。- 我想知道变量占用了多少位,如果不对 char 中的位数做出假设,sizeof 不会告诉我这一点。
所以我想出了这段(可能是不必要的)代码:
#include <stdio.h>
#include <math.h>
#include <limits.h>
int main(void)
{
double bits;
bits=sizeof(int)*log10(UCHAR_MAX+1)/log10(2);
printf("Bits = %lf\n", bits);
return 0;
}
是否有更简单(标准)的方法来检查bits
给定类型占用了多少?
CHAR_BIT * sizeof(type)
会做这项工作,但有没有标准的one argument
宏/功能可以为我做这件事?
具有更好数学背景的人可以检查我的代码是否总是给出正确的答案。