【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;
}

 

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

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值