关于按字寻址和按字节寻址的理解

  我们先从一道简单的问题说起!

     设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小? 

     如果按字节编址,则 

                     1MB = 2^20B 

                     1字节=1B=8bit 

                     2^20B/1B = 2^20 

     地址范围为0~(2^20)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围大小为2^20=1M

     如果按字编址,则

                      1MB=2^20B

                      1字=32bit=4B

2^20B/4B = 2^18 

      地址范围为0~2^18-1,也就是说我们至少要用18根地址线才能完成对1MB空间的编码。因此按字编址的寻址范围是2^18

以上题目注意几点:

 

1.区分寻址空间与寻址范围两个不同的概念,寻址范围仅仅是一个数字范围,不带有单位

而寻址范围的大小很明显是一个数,指寻址区间的大小

  而寻址空间指能够寻址最大容量,单位一般用MB、B来表示;本题中寻址范围为0~(2^20)-1,寻址空间为1MB。

2.按字节寻址,指的是存储空间的最小编址单位是字节,按字编址,是指存储空间的最小编址单位是字,以上题为例,总的存储器容量是一定的,按字编址和按字节编址所需要的编码数量是不同的,按字编址由于编址单位比较大(1字=32bit=4B),从而编码较少,而按字节编址由于编码单位较小(1字节=1B=8bit),从而编码较多。

 

3.区别M和MB。

                        M为数量单位。1024=1K,1024K=1M

                        MB指容量大小。1024B=1KB,1024KB=1MB.

时间: 2024-10-25 07:58:46

关于按字寻址和按字节寻址的理解的相关文章

7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

作者:中华石杉 面试题 redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗? 面试官心理分析 在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有 codis,或者 twemproxy,都有.有一些 redis 中间件,你读写 redis 中间件,redis 中间件负责将你的数据分布式存储在多台机器上的 redis 实例中. 这两年,redis 不断在发展

解惑:字、位、字节、字符、字符串。

1.字 就是我们所说的文字,如汉字,占2个字节(字不是计算机处理的数据,至少不是直接处理) 2.位(bit,比特) 这才是计算机中的最小数据单位,二进制数,如 一个0或1,这样的数据就叫一位 3.字节(byte) 是一种数据类型,一般 一个字节=8位, 字节是指一小组相邻的二进制数码(位).通常是8位作为一个字节.它是构成信息的一个小单位,并作为一个整体来参加操作 (所以,尽管最小的单位是位bit,但最常用的单位是字节byte 8位) 4.字符 字符人们使用的记号,抽象意义上的一个符号. '1'

给定地址段为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为____到____

此题解题背景默认为8080型CPU,地址总线为16根.(8080-16,8086-20,8088-20,80286-24,80386-32) 16根地址总线寻址能力:(2 ** 16) / 1024 = 65536(B) = 64(KB), 可以表示的存储单元个数为 0 ~ 2^n-1 个, 即 0 ~ 65535. 这里的 65535 为十进制数,转换为十六进制数为 0xffff (或 ffffH),具体转换方法可以用 Python3 函数 hex(65535). 再来看CPU内存单元物理地址

js判断输入字符串长度(汉字算两个字符,字母数字算一个):例如 要求输入12的字,24个字节

<html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .pbt .ftid a { margin-top: 1px; } .cl:after { clear: both; content: ".&quo

关于字节对齐的理解

字节对齐的剖析 一.需要了解的名词和概念 1.数据类型自身的对齐值:即数据本身所占字节长度. 2.结构体或类的自身对齐值:即其中数据成员类型对齐值的最大值. 3.指定对齐值:由编程人员通过#pragma pack(value)指定的value值,通过#pragma pack()代码解除. 4.结构体.类.数据成员的有效对齐值:即2.3以及当前计算机总线长度三者的最大值. 5.圆整: 即结构体成员变量占用总长度需要是对结构体有效对齐值的整数倍 以上为理解字节对齐的最基本要求,请耐心看完. 二.CP

字节序的理解----C语言和Python语言

字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序.常见的主要有以下2种: 小端序(Little-Endian):低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端.最符合人的思维的字节序,地址低位存储值的低位,地址高位存储值的高位.该序因为从人的第一观感来说低位值小,就应该放在内存地址小的地方,也即内存地址低位,反之,高位值就应该放在内存地址大的地方,也即内存地址高位.在80X86平台上,系统将多字节中的低位存储在变量起始地址,使用小端法. 大端序(B

通过反编译字节码来理解 Java 枚举

枚举的声明很简单, 像 enum Gender { Male, Female }, 其余事情就是 Java 编译器帮我们干的了,所以 enum 也就是一块语法糖.有了枚举确实是很方便,避免了传统常量的无范围性.那么编译器到底在后面做了什么呢?以及理解了这个之后我们可以怎么去使用 Java 的枚举, 下面就从这个例子说起: public enum Gender {    Male,    Female} 把上面的编译成 Gender.class, 然后用  javap -c Gender 反编译出

51总结

一般单片机内部有两种类型的存储器,分别是数据存储器(RAM)和程序存储器(ROM),我们用IPS下载线下载的程序存储在ROM空间里,在单片机运行程序的时候,程序中的变量储存在RAM空间里. 存储类型说明表: 存储类型                       操作区域                                寻址范围 data                              字节寻址片内RAM                 片内RAM的128B bdata 

字节、字、位、比特,这四者之间的关系

1.位(bit) 来自英文bit,音译为“比特”,表示二进制位.位是计算机内部数据储存的最小单位,11010100是一个8位二进制数.一个二进制位只可以表示0和1两种状态(21):两个二进制位可以表示00.01.10.11四种(22)状态:三位二进制数可表示八种状态(23)……. 2.字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示. 字节是计算机中数据处理的基本单位.计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1B