深度剖析数据在内存中的存储-初了解

这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战

最近,想复习一下C语言,所以笔者将会在掘金每天更新一篇关于C语言的文章! 各位初学C语言的大一新生,以及想要复习C语言/C++知识的不要错过哦! 夯实基础,慢下来就是快!

数据类型介绍

char        //字符数据类型
short      //短整型
int        //整形
long        //长整型
longlong  //更长的整形
float      //单精度浮点数
double      //双精度浮点数
//C语言有没有字符串类型?->没有
复制代码

类型的意义:

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


类型的基本归类:

整形家族:

char
unsignedchar
signedchar
short
unsignedshort [int]
signedshort [int]
int
unsignedint
signedint
long
unsignedlong [int]
signedlong [int]

复制代码

浮点数家族:

float
double
复制代码

构造类型:

>数组类型
>结构体类型struct
>枚举类型enum
>联合类型union
复制代码

指针类型

int*pi;
char*pc;
float*pf;
void*pv;
复制代码

空类型:

void表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型。
复制代码

原码反码补码的概念

计算机中的有符号数有三种表示方法,即原码、反码和补码。 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位三种表示方法各不相同。


原码

直接将二进制按照正负数的形式翻译成二进制就可以。

反码

将原码的符号位不变,其他位依次按位取反就可以得到了。

补码

反码+1就得到补码。


正负数的计算规则是不相同的

正数的原、反、补码都相同。 对于整形来说:数据存放内存中其实存放的是补码。


为什么内存中存放的都是补码

为什么呢? 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同 时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需 要额外的硬件电路。


今天就先到这吧~感谢你能看到这里!希望对你有所帮助!欢迎老铁们点个关注订阅这个专题! 同时欢迎大佬们批评指正!

Guess you like

Origin juejin.im/post/7035213173208645646