這裏有一些想法。我正在學習,所以可能會出現錯誤,甚至缺少一些基本知識。
基本數據類型的位數
sizeof
運算符返回字節數。number of bits in byte
是不恆定的值(糾正我,但它是char的位數)。- 我想知道有多少位變量佔用,sizeof不會告訴我,如果不作出關於char位數的假設。
於是我想出了這片(可能是不必要的)代碼:
#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
宏/功能,這對我來說呢?
有更好的數學背景的人可以檢查我的代碼是否總會給出正確的答案。
可能重複的[字符保證是正確的8位長在C?](http://stackoverflow.com/questions/) 881894/is-char-guaranteed-exactly-exactly-8-bit-in-c) – drahnr
@drahnr它不是,它是完全不同的問題。我知道字符/字節可以有不同的大小。 – zubergu