浮点数与整型在内存中的存储比较

目录

整型家族

分类

 各类型所占字节数

windows下

linux下

 浮点型家族

数据类型还有构造类型、指针类型以及void空类型

 整型在内存中的存储规则

原码、反码、补码转换规则 

补码转换到原码

原码转换到补码

其中补码转为原码可以这样:

为什么整型在内存中存储的是补码

查看整型在内存中的存储

 什么是大端存储、小端存储?

 为什么有大端和小端:

 浮点数在内存中的存储规则

 引出问题

 分析问题

 float类型在内存中的存储形式

 特别规定

M

 E


整型家族

分类

char、short、int、long[int] 、long long[int]

整型家族的每一种类型都有无符号(unsigned)和有符号(signed)两种类型

 各类型所占字节数

windows下

64位平台下

 32位平台下

linux下

64位平台下

 发现了吗?long这个类型所占字节的大小变成8了

这是因为C语言标准规定sizeof(long)>=sizeof(int)

如果你想定义占8个字节大小的整型,建议你用long long 而不是long

 浮点型家族

float、double

float和double总是带符号的

printf("%d\n", sizeof(float));//4

printf("%d\n", sizeof(double));//8

在C语言中

对于整型家族的取值范围都定义在limits.h

对于浮点型家族的取值范围都定义在float.h

#define DBL_MAX          1.7976931348623158e+308 // max value
#define DBL_MIN          2.2250738585072014e-308 // min positive value
#define FLT_MAX          3.402823466e+38F        // max value
#define FLT_MIN          1.175494351e-38F        // min normalized positive value

数据类型还有构造类型、指针类型以及void空类型

构造类型有:数组、结构体(struct)、共用体(union)、枚举(enum)

void空类型:void 表示空类型(无类型)通常应用于函数的返回类型、函数的参数、指针类型

 注意点:

1. void 是空类型,空类型对应的大小是0, 所以 void 无法开辟空间,即无法定义变量。

2. void 在linux 系统下大小为 1 个字节,但是系统认定 void 为空类型,同样无法定义变量。

3. 虽然 void 不能定义变量,但是 void* 可以,在 32 位平台下,任何类型的指针的大小都是4个字节,在64位平台下,任何类型的指针的大小都是8个字节,但是void*不能解引用。指针有float*,double*,int *,char*,void*等类型

4. C 语言中函数的返回值类型可以省略,但是省略之后默认为 int而不是void

5. void* 可以接收任何类型

 整型在内存中的存储规则

正数、负数在计算机中是以二进制的形式存放
    二进制就只有0和1,就好像十进制只有0~9,满10进1
    二进制满2进1
正数、负数的二进制又被分为原码、反码、补码
    请记住:任何整数都是以补码形式存放在计算机中的
    正数的原码、反码、补码三者是相同的,因此正数也可以看成是以原码的形式存放在计算机中

原码、反码、补码转换规则 

补码转换到原码

补码-1得到反码,反码进行符号位不变的“按位取反”得到原码 

原码转换

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪孤儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值