c语言字母是怎么存储,C语言之数据在内存中的存储

C语言之数据在内存中的存储

在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢?

首先我们来看看C语言中的基本的内置类型:

char //字符数据类型

short //短整型

int //整形

long //长整型 long long//更长的整形

float //单精度浮点数

double //双精度浮点数

在这,值得一提的是C语言的基本类型中并没有字符串类型,而字符串的实现一般都是通过数组来实现

C语言的数据类型我们可以基本分为5种类型

1.整型家族

char //字符形其实也属于整形,因为在字符的储存是存的是它的ASCII码值unsignedchar signed char

shortunsignedshort [int] signed short [int]intunsignedint signed int

longunsignedlong [int] signed long [int]

2.浮点型家族

float

double

3.构造类型

>数组类型> 结构体类型 struct

> 枚举类型 enum

> 联合类型 union

4.指针类型

int *pi;

char *pc;

float* pf;

void* pv;

5.空类型

void表示空类型(无类型)

通常应用于函数的返回类型、函数的参数、指针类型。

在复习了一遍数据类型之后,我们现在来谈谈数据到底是怎么存储的

一.整形在内存中的存储

首先我们来看看整形

比如,下面再平常不过的式子

int a = 10;int b = -20;

先不管其他的,我们先来看看它在内存里是怎么放的

e85c753bf225057b933fae8f74d3b7f5.png

我们得到了一串数字,而这些数字代表这什么呢?

原来是一串16进制的数字啊

我们知道一个整形系统分配四个字节来储存

而一个字节又有8个比特位,所以就会有32个二进制的0或1.我们把上面两串16进制的数字转为2进制来看一看有什么不同。

00001010000000000000000000000000

11101100111111111111111111111111

在这我们来看看10的二进制

00000000000000000000000000001010

有什么不同呢?

在这我们来介绍一下原码,反码,补码

计算机中的有符号数有三种表示方法,即原码、反码和补码。

三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位 三种表示方法各不相同。

原码

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

反码

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

补码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值