预备知识
计算机中的存储与内存
存储单位
计算机的存储单位,从小到大依次为:bit(比特) ->byte(字节)->kb->MB->GB->TB->PB.
他们之间的转换关系:
1PB = 1024 TB, 1TB = 1024 GB, 1GB = 1024 MB, 1MB = 1024 kb, 1kb = 1024 byte, 1byte = 8 bit
1个bit用来存放1个二进制数。
内存分配
计算机的内存分配简要了解即可,CPU存取数据最快的是寄存器,C语言中也有关键字 register与之对应。
在内存中,一个存储单元是一个字节,也就是说一个内存单元可以存储8bit,每个内存单元对应着一个地址(也就是内存的编号),地址所占内存大小与long类型一样,是4个或8个字节。
关于进制数
关于二进制、 八进制、十进制与十六进制之间的转换是必须要掌握的,另外,十六进制前面一般加0x表示。计算机存储数值的编码方式是:原码、反码和补码。三者之间的转换关系可以简述为:
原码 ----符号位不变,其余位按位取反---->反码 —最后一位+1---->补码
补码—最后一位-1---->反码----符号位不变,其余位按位取反---->原码
正数的原码、反码和补码是一样的,负数在内存中存储的时候,存储的是二进制的补码。因此,可以认为,只要是整数,内存中存储的都是二进制的补码。
C语言中的类型、所占内存和打印格式
数据类型 | 占用内存字节数 | 打印格式 |
---|---|---|
char | 1 byte | %c |
short | 2 bytes | %d |
int | 4 bytes | %d |
long | 4 or 8 bytes | %d |
long long | 8 bytes | %d |
float | 4 bytes | %f |
double |