数据在内存中的存储(超详细)

这篇博客详细介绍了C语言中数据类型的存储方式,包括整型在内存中的存储(原码、反码、补码)、大小端字节序的判断以及浮点型的存储规则。讨论了不同类型如char、int、float、double的字节数和表示范围,同时也探讨了有符号和无符号数的区别,以及浮点数的IEEE 754标准。
摘要由CSDN通过智能技术生成
  1. 数据类型详细介绍
  2. 整形在内存中的存储:原码、反码、补码
  3. 大小端字节序介绍及判断
  4. 浮点型在内存中的存储解析

数据类型介绍:

内置类型:

  1. char     //字符数据类型 //1个字节
  2. short    //短整型 // 2个字节
  3. int     //整形 // 4个字节
  4. long     //长整型
  5. long long  //更长的整形 // 8 个字节
  6. float    //单精度浮点数 // 4个字节
  7. double    //双精度浮点数 // 8个字节

C99规定中sizeof(long) >= sizeof(int)

32位平台下sizeof(long) 是四个字节,64位环境下是八个字节。

类型的意义:

  1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。
  2. 如何看待内存空间的视角。

类型的基本归类:

整形家族:

  1. char

  2. unsigned char

  3. signed char

  4. short

  5. unsigned short [int]

  6. signed short [int]

  7. int

  8. unsigned int

  9. signed int

  10. long

  11. unsigned long [int]

  12. signed long [int]

  13. long long

  14. unsigned long [int]

  15. signed long long [int]

char为什么也能归到整形家族?

因为char类型在内存中存的是ASCLL码值,是整形。所以划分为整形家族。

小细节:

int a;我们平时这样写的整形变量,其实就是signed int。

那么其它内置类型是不是也可以这样想呢?

除了char类型其它类型就可以这样想。

char类型到底是signed char类型,还是unsigned char?

C语言标准未定义,取决于编译器。

signed 表示有符号的数

unsgned 表示无符号的数

为什么要用signed来表示有符号数呢?

想象下我们生活中有些变动的值,比如温度、湿度等,这时候就需要用正负数来表示。

那么为什么要用unsgned 来表示无符号的数呢?

生活中有些值是正数,并且是不会为负数的。比如说身高、体重

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值