计算机存储问题以及操作系统最大支持的内存

一:计算机容量

1位=1bit(计算机中最小的存储单位,来源binary system,被称为位/比特)

8bits=1byte=1字节(内存的最小I/O单位)

1024bytes=1kbytes=1kb 1024个字符

1024kb=1024*1024bytes=1mb

1024mb=1gb

......

二:常见的问题

2.1 硬盘的空间比买的时候要少

     硬盘厂商和商家以十进制进行计算

            2G=2000MB=2000 000KB=2000 000 000Byte

    操作系统二进制计算

           2000 000 000Byte=1953125KB=1953MB=1.9G

    所以在实际中买来的U盘会"缩水",商家并没有欺骗我们,只是我们站在不同的立场去看待问题

2.2 百兆宽带,下载速度只能达到十多兆

      宽带运营商是以二进制来计算机的 百兆宽带=100M bit/s(单位是兆比特)

     实际理解为100M bit/s / 8=12.5MB/s

    所以我们的下载速度只能达到十多兆

三:内存结构

       内存里存放的数据是0/1二进制,有很多的小格子,每一个是bit如果是数值是255,那么

就需要8个小格子,也就是一个字节byte ,CPU在读取内存中的数据是把8个bit排成一组,每

一组为一个单位,CPU每次访问都是去访问一个byte,不去访问每一个单独的小格子(bit),所以:

1个byte就是内存的最小的I/O单位

大部分数据都会作为各种数据类型存放在内存中,最小单位都是byte

四:内存地址

计算机操作系统会给内存中每一个字节分配一个内存地址,CPU只需要知道某个数据类型的地址,就可以

直接去到内存中的特定地址去读取数据

内存地址也是由二进制数字组成的,每一个地址对应一个byte字节,如果地址+1,那么地址就对应下一个字节

那么内存地址长度就是操作系统位数的二进制数 ,例如32位操作系统的某个内存地址是

0000 1111 1111 0000 1111 0000 1111 0000 用十六进制表示为0x0ff0f0f0

 

内存地址的数量决定CPU能访问的内存大小

32位操作系统内存地址为0x00000000-0xffffffff,共有2**32个地址

2**32 byte=4g

那么64位操作系统支持的最大内存为2**64byte=很大g

对于操作系统来说:64位和32位指的是最大寻址空间

对于硬件来说,64位和32位指数据宽度,一次从内存中取4个字节变成了8个字节,理论上速度会

加快一倍,实际情况是 达不到一倍,内存变大了,寻址更多

市面上的32位CPU几乎没有,64位CPU现在基本都装64位的操作系统,兼容32位软件,动态识别内存

唯一的缺点是多占用内存看空间

五:关于指针的长度

指针存放内存地址,对于32位操作系统: 内存地址是32位长度的二进制数,

需要4byte 所以 int *p sizeof(p)=4

对于64位操作系统: 内存地址是64位长度的二进制数,

需要8byte 所以 int *p sizeof(p)=8

六:参考

https://www.jianshu.com/p/92226196fdcd

 

 

      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值