数据的存储

数据的存储,第1张

数据的存储

数据类型的介绍:

基本的内置类型
char        //字符数据类型
short       //短整型
int         //整形
long        //长整型
long long   //更长的整形
float       //单精度浮点数
double      //双精度浮点数
类型的意义: 1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。 2. 如何看待内存空间的视角。 整型家族:
char
 unsigned char//0-255
 signed char//-128--127
short
 unsigned short [int]
 signed short [int]
int
 unsigned int
 signed int
long
 unsigned long [int]
 signed long [int]

加了中括号的代表可以省略,有符号的整型也可以省略。

 

 

浮点数家族:

float double 构造类型:
数组类型 > 结构体类型 struct > 枚举类型 enum > 联合类型 union

 指针类型:

int *pi;
char *pc;
float* pf;
void* pv;

整型在数据中的存储: 需要了解原码,反码补码

原码、反码、补码 计算机中的有符号数有三种表示方法,即原码、反码和补码。 三种表示方法均有 符号位 和 数值位 两部分,符号位都是用 0 表示 “ 正 ” ,用 1 表示 “ 负 ” ,而数值位 三种表示方法各不相同。 原码 直接将二进制按照正负数的形式翻译成二进制就可以。 反码 将原码的符号位不变,其他位依次按位取反就可以得到了。 补码 反码 +1 就得到补码。 正数的原、反、补码都相同。 对于整形来说:数据存放内存中其实存放的是补码。 举个例子如下:

 

一道例题:

 

 

 

发生整型提升,会按照符号位补全32个比特位。 

 

 

i小于255恒成立,所以是死循环。 

 

 

 

 

设计一个小程序来判断当前机器的字节序(大小端) 

 

#include 
int check_sys()
{
 int i = 1;
 return (*(char *)&i);
}
int main()
{
 int ret = check_sys();
 if(ret == 1)
 {
 printf("小端n");
 }
 else
 {
 printf("大端n");
 }
 return 0; }

把整型的指针强制转换为字符的指针,只访问一个字节。

函数没有接收返回值,就算你给他值也不做任何的回应。 

浮点数的存储:

 

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5715143.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存