C进阶之内存

内存

内存是计算机的一个重要组成部分(冯诺依曼体系中的重要组成部分)

1.如何理解内存

想象一个大走廊,走廊上有很多房间,每个房间大小是1字节,每个房间都有门牌号(从0开始递增)称为“地址”,指针专门用于保存地址的变量。

2.内存vs外存

内存支持随机访问能力,计算机访问内存上某个地址的数据开销很小,不管地址的编号是大还是小。 外存也支持随机访问的能力,但是支持程度不如内存,开销大很多。

内存存储空间小,外存比较大

内存访问速度快,外存比较慢(内存比外存快3-4个数量级)

内存成本高,外存成本低

如果掉电,内存数据丢失,外存不会丢失

字节序

1.小端字节序

在这里插入图片描述

2.大端字节序

在这里插入图片描述
小端字节序:数字的低位存储到低地址
通常使用大端字节序;

负整数在内存中的存储

int既能表示正数,又能表示负数(最高位为符号位,1表示负,0表示正),uunsigned int 只能表示正数,

计算机采用补码存储,补码=原码取反加一,正数原码反码补码相同,负数需要通过计算所得.

-10:1000 0000 0000 0000 0000 0000 0000 1010 原码
-10: 1111 1111 1111 1111 1111 1111 1111 0101 反码
-10:1111 1111 1111 1111 1111 1111 1111 0110 补码
原码取反加一得到补码,补码取反加一得到原码

%d:打印一个有符号的十进制整数(int) ,%u:打印一个无符号十进制整数(把参数先转化为unsiged int类型,再打印)

强制类型转换:char表示一个字节,当用%d打印时,就会把char 隐式转化为int类型
1000 0000 0000 0000 0000 0000 1000 0000 -128原码
1111 1111 1111 1111 1111 1111 0111 1111 -128反码
1111 1111 1111 1111 1111 1111 1000 0000 -128补码
char->int->unsigned int ,高位填充符号位数字,unsigned int高位没有符号位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值