【C语言】进阶——深度剖析数据的存储

目录

1.数据类型

整型分类

2.整型在内存中的存储

2.1原码,反码,补码 

2.2大小端介绍

3.浮点数在内存中的存储 


 

1.数据类型

使用不同类型开辟内存空间的大小不同(大小决定了使用范围)

char                         //字符数据类型

short                        //短整型

int                            //整形

long                        //长整型

long long                //更长的整形

float                       //单精度浮点数

double                   //双精度浮点数

本篇主要讲整型,以下是整型的分类

整型分类

char

        unsigned char

        signed char

short

        unsigned short [int]

        signed short [int]

int

        unsigned int

        signed int

long

        unsigned long

        signed long

signed:有符号的

unsigned: 无符号的

:字符在内存中存储的是字符的ASCII码,ASCII码值是整型,所以字符类型归类到整型

2.整型在内存中的存储

2.1原码,反码,补码 

整数的二进制表示形式有3种:

①原码:按照数值的正负,直接写出的二进制序列就是原码。

②反码:原码的符号位不变,其他位按位取反。

③补码:反码的二进制+1就得到补码

①<=>③,都可以通过取反加一得到;

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位

正数的原、反、补码都相同。

负整数的三种表示方法需要计算

2.2大小端介绍

大端字节序存储:

把一个数据的低位字节处的数据存放在内存的高地址处高位字节处的数据存放在内存的低地址处

小端字节序存储:

把一个数据的低位字节处的数据存放在内存的低地址处高位字节处的数据,存放在内存的高地址处

//如何判断机器大小端
int main()
{
	int a = 1;
	char* p = (char*)&a;  //因为char是一个字节,而int是四个字节
                           //如果是小端 01 00 00 00
                            //大端:    00  00 00 01
	if (*p == 1)
	{
		printf("小端\n");
	}
	else
		printf("大端\n");
	return 0;
}

【C语言】进阶——深度剖析数据的存储_第1张图片 

【C语言】进阶——深度剖析数据的存储_第2张图片

3.浮点数在内存中的存储 

 

你可能感兴趣的:(【C】,c语言,开发语言,程序人生)