目录
1.常见的几种数据类型
2. 通过以下代码可以知道它们所占的内存大小
int 4 字节
short 2 字节
long 4 字节 实际上也可以是8字节 (大多数编译系统为4字节)
long long 8字节
char 1字节
float 4 字节
double 8字节
3.储存范围
现在以 char为例。我们都知道计算机系统中,数值用二进制补码储存。而char为1字节8比特位,其中第一位是符号位,其余7位用来表示数值,那么2^7=128,它的范围为什么要-1?相信这是部分初学者的一大困惑,现在就来探究一下
通过原码、反码、补码的转换我们就可以了解其中真相,在unsigned char中8个比特位都用来表示数值,从00000000~11111111也就是0~255
有这么一道题
-8要储存就要转为补码,-8的原码为10001000,反码为11110111,补码11111000,所以它的内存数据形式为11111000。这时候题是做完了,但不妨碍我们继续思考,我们要是把-8用%d打印出来会是什么样?是-8、8还是其他数字。事实上结果为248,从上文我们可以知道其储存形式为11111000,而unsigned char没有符号位,全用来表示数值,11111000的十进制就是248。
4.数据输出
在初学中,我们看见%5d,%7.2f这些表达,有点不理解,其实这是在格式声明中指定输出数据的域宽。像%7.2f表示指定数据占7列,小数占2列,直白来讲,就是要求输出的数据用7个数字表示,其中2个用来表示小数。