char、short、int、long、long long
float、double、long double
bool
斜体部分为C99类型。
表达的数范围:char<short<int<float<double
为运算符,可得出某个类型或变量在内存中所占据的字节数。、
例如:
int a; a=9; printf("sizeof(int)=%ld\n",sizeof(int)); printf("sizeof(a)=%ld\n",sizeof(a));sizeof是静态运算符,其结果在编译时已经决定,不可在sizeof的括号里做运算,这些运算不会计算机不会去做的。
char:1字节(8比特)
short:2字节
int:取决于编译器(CPU),通常的意义为“1个字”
long:取决于编译器(CPU),通常的意义为“1个字”
long long:8字节
计算机内部一切都是二进制。
负数在计算机中是用补码的形式存储的,正数在计算机中是用原码的形式存储的。
正数求原码直接将十进制转二进制即可,负数的补码是先求出负数绝对值的原码,从原码的最后一位数码位往前数,当遇到第一个1时停在此位置,将第一个1前面的数码全部求反。
比如:(字长为8位)
求-127的补码:
127的原码: 01111111
-127的补码: 10000001
求-80的补码:
80的原码: 01010000
-80的补码: 10110000
%d:int
%u:unsigned
%ld:long long
%lu:unsigned long long