1.比特、字节、字
1.比特(bit)
1.1 含义:比特是计算机系统中最小的存储单位,它表示一个二进制位,只能取 0 或 1 这两个值。用于表示数字信号的一个状态,例如在电路中,高电平表示1,低电平表示为0。
1.2 举例:一个二进制数101,它由 3 个比特组成,从右往左依次是第 0 位为 1,第 1 位为 0,第 2 位为 1。
1.3 换算关系:比特是最基础的存储单位,其他的存储单位都是由比特组成的。
1.4 概括:计算机实际电路中是以比特存储数据(硬件)。
2.字节(Byte)
2.1 含义:字节是计算机系统中计量存储容量和传输容量的计量单位(字节用来计量容量单位更合理),字节是计算机系统处理数据的基本单位,很多计算机操作都是以字节为单位进行的,例如文件大小的计量、内存存储容量等。
2.2 举例:如果要存储一个字符(如字母 'A'),在 ASCII 编码中,它通常占用 1 个字节的空间,这个字节可以用二进制表示为 01000001。计算机系统中提到的位或者储存相关,一般以字节为单位。
2.3 换算关系: 1字节 = 8比特(换算关系固定,与系统的位数无关)
2.4 概括:计算机系统中以字节为基本单位处理存储数据(软件)。
3.字(Word)
3.1 含义:在不同的计算机系统中,字的长度可能不同。它是由若干个字节构成的。
3.2 举例:在 16 位计算机系统中,1 个字等于 2 个字节,它可以表示一个整数范围是(无符号数),或者有符号数范围是。在 32 位计算机系统中,1 个字通常等于 4 个字节。
3.3 换算关系:
16位系统中,1字 = 2字节 = 16比特
32位系统中, 1字 = 4字节 = 32比特
3.4 概括:字由字节构成,不同的系统字长不一致。
2.C语言程序存储单位
1.基本存储单位
1.1 32位系统中基本数据存储单位
1.2 32位系统中明确宽度的数据存储
uint32_t 它是32位无符号整型数据,所以占用内存32/8=4字节
uint63_t 它是64位无符号整型数据,所以占用64/8=8字节
2. 数组和结构体等复合类型
1.数组存储单位也是字节,例如:int arr[5],在32位系统中总共占用4*5=20字节存储空间。
结构体存储大小由各个成员的大小和对齐方式决定。
3.指针类型存储
1.指针存储的就是一个内存地址,这个地址指向内存中的某个字节位置,所以在32位系统中占用4字节,在 64 位系统中占用 8 个字节。例如,int *p
指向的是一个int
类型的数据,在 32 位系统中会从指针所指的地址开始读取 4 个字节来获取一个int
值。