内存是按字节编址的,所以单位是字节哈,1字节可是等于8位的。因为计算的范围一般比较小,所以就记住两个就够了。记住几个常用的
2的10次方为1024即1KB
2的20次方=(2的10次方)的平方,即1MB就行了
如果要求更大的,那就再记住 2的40次方=(2的10次方)的4次方=1GB ,一般就够用了。
DFFFF-A0000 = 3FFFF
一眼看不出来大小滴,或许你要用笔算,不过用这个方法两眼就能看出来:
3FFFF展开为2进制就是2的18次方,是吧,即
2的10次方乘以2的8次方=1K*256即256KB
或者直接2的20次方/2的2次方=2的18次方。一般选就近原则。1MB/4=256KB
32K*8bit=256Kb=(256KB/8bit)
在网上找的另外一道题:
计算机SRAM容量为4K x 8,配置地址首地址为:06800H,则其末地址是多少
a.38800H B.10800H C.077FFH D.07800H
分析:
公式:
内存容量=末地址-首地址+1
4K*8bit = 4KB即2的平方乘以2的10次方,2的12次方,12/4=3(转为16进制)即1000H
01000H=末地址-6800H+1H
末地址=01000H+6800H-1H
2的20次方=(2的10次方)的平方,即1MB就行了
如果要求更大的,那就再记住 2的40次方=(2的10次方)的4次方=1GB ,一般就够用了。
DFFFF-A0000 = 3FFFF
一眼看不出来大小滴,或许你要用笔算,不过用这个方法两眼就能看出来:
3FFFF展开为2进制就是2的18次方,是吧,即
2的10次方乘以2的8次方=1K*256即256KB
或者直接2的20次方/2的2次方=2的18次方。一般选就近原则。1MB/4=256KB
32K*8bit=256Kb=(256KB/8bit)
在网上找的另外一道题:
计算机SRAM容量为4K x 8,配置地址首地址为:06800H,则其末地址是多少
a.38800H B.10800H C.077FFH D.07800H
分析:
公式:
内存容量=末地址-首地址+1
4K*8bit = 4KB即2的平方乘以2的10次方,2的12次方,12/4=3(转为16进制)即1000H
01000H=末地址-6800H+1H
末地址=01000H+6800H-1H
末地址=077FFH
原文位置:http://blog.chinaunix.net/uid-26495963-id-3050545.html
计算机内存和外存的编址方式有按字和按字节编址两种方式。
按字节寻址,指的是存储空间的最小编址单位是字节,按字编址,是指存储空间的最小编址单位是字,以上题为例,总的存储器容量是一定的,按字编址和按字节编址所需要的编码数量是不同的,按字编址由于编址单位比较大(1字=32bit=4B),从而编码较少,而按字节编址由于编码单位较小(1字节=1B=8bit),从而编码较多。
以下是自己的一些理解:
一定要理解:ARM存储空间的最小单位是字节,每次最少访问一个字节的单元,当然你可以只改变其中的一个bit!!!
我们常说的内存大小为4GB=4*1024M=4*1024*1024K=4*1024*1024*1024B
这里的B是Byte的简写,而不是bit不要搞混了,或者不理解其中的含义。
计算机里面单位进制:
1K= 1024B(字节)=2^10
1M = 1024 K = 2^20
1G = 1024 M = 2^30
地址线根数 对应范围 空间大小 计算过程
8 00~FF 256B 2^8 = 256B
16 0000~FFFF 62K 2^16 = 2^6K = 64K
20 00000~FFFFF 1M 2^20 = 2^10K = 1M
24 000000~FFFFFF 16M 2^24 = 2^4*M = 16M
28 0000000~FFFFFFF 256M 2^28 = 2^8 M = 256M
32 00000000~FFFFFFFF 4G 2^32 = 2^2*G = 4G
下面是16条地址线的举例:
内存地址空间:一个cpu的地址总线宽度为16,那么可以寻址64K个内存单元,这64K个可寻到的内存单元就构成了这个cpu的内存地址空间
下面以实际三星S5PV210来看:
地址空间范围:0x00000000 ~ 0x1FFFFFFF 按上面的计算可得到结果为 512M