深度刨析数据在内存中的存储
本章重点
- 1.数据类型详细介绍
- 2.整型在内存中的存储:原码,反码,补码
- 3.大小端字节序介绍及判断
- 4.浮点型在内存中的存储解析
数据类型的介绍
1.内置类型
- char-------字符数据类型
- short-----短整型
- int------整型
- long------长整型
- long long-----更长整形
- float----单精度浮点数
- double-----双精度浮点数
类型的意义:使用这样的类型决定开辟空间的大小(大小决定了使用范围)
类型的基本归类:
整型家族:
- char
- unsigned char 有符号的char
- signed char 无符号的char
- short
- unsigned short
- signed short
- int
- unsigned int
- signed int
- long
- unsigned long
- signed long
浮点型家族
- float
- double
构造类型
- 数组类型
- 结构体类型—struct
- 枚举类型 enum
- 联合类型 union
指针类型
- int* p
- char* pc
- float* pf
- void* pv
- 指针类型:决定了指针解引用操作符能够访问几个字节,char* p;p访问的是一个字节,int p;*p访问4个字节
- 指针类型决定了指针+1,-1;加的是几个字节,char* p;*(p+1)跳过的是一个字节
空类型
- void表示空类型(无类型)
- 通常应用于函数的返回类型,函数的参数,指针类型
整形在内存中的存储
负数的原码,反码,补码求法
- 结论:对于整形来说,数据存放内存中的其实是补码
那为什么整形在内存中是倒着存放的呢???
什么是大端小端??
- 大端(存储)模式,是指数据的低位保存在内存的高地址,而数据的高位保存在内存的低地址
- 小端(存储)模式,是指数据的低位保存在内存的低地址,而数据的高位保存在内存的高地址
写一段代码告诉我们当前机器的字节序是什么???
练习一
练习2
- 有符号数 包括正数和负数
- 而无符号数 都为非负数
- 结论:有符号数的char类型范围是:-128–>127
- 一个无符号char类型的范围是:0–>255