前言
数据在内存中是如何存放的呢?
如此繁多种数据的存储方式都是一样的吗?
…
那么接下来,我将带你深入内存中,了解其存储数据的奥秘。
编译器环境:vs2019
一、整形的存储
1.整形存储类型
在C语言当中,整形包括如下类型:
char //unsigned char signed char
short //unsigned short signed short
int //unsigned int signed int
long //unsigned long signed long
long long
这时可能有人就疑惑了,char不是字符类型吗?在这里就要注意ASCII码了,char类型在存储时都是以ASCII码的形式进行存储的,所以我们在归类时可以将它归类为整形方式的存储,在将存储之前我们还要在熟悉一下原反补的概念。
2.原码 反码 补码
1.原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.
2.反码
正数的反码是其本身,负数的反码是在原码的基础上, 符号位不变,其余位按位取反.
3.补码
正数补码是其本身,负数的补码是在反码的基础上+1.
3.整形数据的存储
再熟悉了原反补后,我们可以说:在计算机中,整形数据一律用补码进行存储和表示。
原因在于1.可以将符号位和数值域统一处理;
2.加法和减法也可以统一处理。
原因1可以理解,原因2我在这里解释一下。
首先是运算角度,在计算机内部减法是当做加法一起运算的,即(1-1)就可以表示为(1+(-1