当前位置:  技术问答>linux和unix

晕死了!关于内存计算

    来源: 互联网  发布时间:2016-10-28

    本文导语:  在32位地址的微机中,内存到底怎么算; 有的人直接2的32次方说是4GB,这不是地址范围吗? 还有G与GB,K与KB,M与MB到底有没有区别,我都晕死了!! (下面摘自《ARM体系结构》)在讲ARM存储空间时直接说“ARM体系使...

在32位地址的微机中,内存到底怎么算;
有的人直接2的32次方说是4GB,这不是地址范围吗?
还有G与GB,K与KB,M与MB到底有没有区别,我都晕死了!!
(下面摘自《ARM体系结构》)在讲ARM存储空间时直接说“ARM体系使用单一的平板地址空间,该地址空间的大小为2的32次方个8位字节(这里有点晕,为什么说是8位字节,不说是32位,4个字节)
在微机中地址与存储空间是不是分开的??????????

|
2 的32 次方 是指寻址空间,在虚拟内存中每个进程都有2的32,即4GB;
在容量转换时,K 与KB,G与GB 没区别。1k=1024KB

你说的ARM 应该是8位的吧?就是一次处理8位数据(从内存中读写),而CPU 的寄存器是32位的。

|
    首先要知道这个换算关系:一个字节(byte)等于8个位(bit)二进制,即1byte=8bit。
    内存地址的基本单元是字节(byte),你可以把内存想象成由许多的小盒子组成,一个小盒子等于一个字节,并且每个小盒子都有标号,标号就可以理解为内存的地址,我想知道某个标号盒子里到底放着什么就直接去找这个标号就可以了,同理可以通过找地址知道这个地址对应的内存到底存着什么。接下来你可以从0开始数到底有多少个盒子(也就是多少字节)呢?32位是指32位的二进制。1bit最多只能记2个状态也就是2个盒子,2bit最多只能记2的2次方也就是4个盒子,这里的2和4都是十进制数了。而32位呢,就是2的32次方个的盒子,也就是2的32次方个byte,而1Gbyte(GB)=1024MB,1Mbyte(MB)=1024byte。所以2的32次方是4GB,有4G个盒子(字节)来表示内存。再换算成bit就是,4G*8的bit(这里的8也就是8位的意思也就是“这里有点晕,为什么说是8位字节,不说是32位,4个字节”里的8)
    


|
[Quote=引用 1 楼 d1x2p3 的回复:]

2 的32 次方 是指寻址空间,在虚拟内存中每个进程都有2的32,即4GB;
在容量转换时,K 与KB,G与GB 没区别。1k=1024KB

你说的ARM 应该是8位的吧?就是一次处理8位数据(从内存中读写),而CPU 的寄存器是32位的。
[/Quote】+1

|
我一直觉得有时候单独说G或者M容易导致混淆,这样写会更好些吧

GB  2的30次方个字节(Byte)  
Gb  2的30次方个比特(bit)


当然,对于M和K也是如此了

MB
Mb

KB
kb

就像在家里一样,自己的宽带明明是1M的,但下载的速度最多也只有100多K,其实没有任何问题
因为1M的宽带是 1Mb的宽带
迅雷上给的素的是 100K是 100KB的速度,而不是100Kb

|
一个字节(byte)等于8个位(bit)二进制,即1byte=8bit。
1kb = 2的10次方
1M = 1MB = 2的20次方
1G = 1GB = 2的30次方

呵呵 2的32次方就是4GB啦

|
2的32就是4G的意思
8位就是1Byte
连起来就是4GB

    
 
 

您可能感兴趣的文章:

  • 虚拟机的内存是如何计算的?
  • 内存外部计算的C++标准库 STXXL
  • linux 的虚拟内存是如何计算的 ?
  • 进行内存分配时为什么要对给定的大小重新计算大小???
  • 计算进程的内存使用量应该使用/proc/self/statm哪几个量相加表示?
  • 请问:Linux下用C编程计算CPU利用率和内存利用率?
  • 如何在linux下查看计算机的内存大小?
  • 计算机组成原理,数据如何从存储设备的缓存转移到内存,是什么在控制数据的传输
  • 关于内存寻址空间的计算问题(新手,高手勿笑)
  • 大家好,我有一586 32m内存的计算机希望能够利用,不必图形界面但需要通过局域网上Internet接收数据,能够安全稳定占用较少的资源。
  • 公告:CSDN AIX论坛五月有奖话题讨论活动(一)——本期话题:海量数据时代,云基础架构的瓶颈有哪些?比如内存、带宽、CPU计算速度、安全性等
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 get_allocator():返回vector的内存分配器
  • 我的机器内存128 ,安装redhat9 后,可用内存很少了,如何节省内存呢?
  • C++ Vectors 成员 capacity():返回vector所能容纳的元素数量(在不重新分配内存的情况下)
  • 奇闻:Apache+Apache JServ 1.1.1+1G内存居然报内存不够,那位高友知道参数设置,把俺的1G内存都利用起来,感激不尽啊
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 怎样读取指定内存地址处指定长度的内存数据???(
  • C/C++内存池实现介绍及基本要求
  • 【操作系统虚拟内存和物理内存疑惑】
  • linux下free命令显示的内存使用情况分析
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • c/c++内存堆分配和栈分配理解
  • Solaris下如何获得物理内存和虚拟内存的大小?
  • Ubuntu查看内存,进程相关命令介绍
  • 程序需要共享内存相当大,但是系统的内存有限
  • Linux 共享内存介绍及实现代码
  • 关于大于2G内存的使用.....按32位编译的进程怎么使用大于2G的内存?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • redhat9内存使用率高达73%,怎么查看内存具体使用情况
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 遇到奇怪的内存泄露问题,应用程序杀死内存无法释放!
  • Microsoft Internet Explorer内存破坏漏洞(CNVD-2013-13096)
  • 多个进程对系统V共享内存进行读写,怎样实现对共享内存部分进行加解锁?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3