c语言高位低位内存存放,浅谈数据在内存中的存储

我们都知道C语言基本的内置类型:char //字符数据类型

short //短整型

int //整形

long //长整型

long long //更长的整形

float //单精度浮点数

double //双精度浮点数

需要注意的是,C语言没有字符串类型!

那么,不同的类型决定了他们所占存储空间的大小的不同,这也是类型的意义之一。

类型的基本归类

整形家族char

unsigned char

signed char

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;

空类型

void 表示空类型(无类型)

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

上面我们详细介绍了C语言的各种数据类型,而我们知道一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。

那么,数据在所开辟内存中到底是如何存储的?

下面我们首先来看整形在内存中到底是如何存储的

整形在内存中的存储

比如:int a = 20;

int b = -10;

我们知道要为 a 分配四个字节的空间。 那如何存储呢?

要搞清楚整形在内存中的存储,就必须先了解下面一组概念:

原码、反码、补码

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

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

原码

直接将数据按照正负数的形式翻译成对应的二进制序列。

反码

原码的符号位不变,其他位依次按位取反。

补码

反码 1就得到补码。

正数(无符号数)的原、反、补码都相同。

相信学过计算机组成原理这门课的读者对于这一概念并不陌生。

对于整形来说:数据存放在内存中其实存放的是补码。

为什么呢?

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值