如何计算地址范围(大小)

问题描述

今天在学习野火STM32HAL库的过程中,看到了存储器区域功能划分这个章节。在这里插入图片描述
他的0x00000000 - 0x1FFFFFFF为什么是512MB。本人曾经参加了一次软考,考的嵌入式系统设计工程师,当时也没准备就去了,结果就是没过…回想当时也有这个题,如何计算地址范围。今天咨询了下同事,经过一顿友好的交流(鄙视~)大概明白了。

解决

如第一个,0x0000 0000 - 0x1FFF FFFF,总共有29位(1FFF是13BIT, FFFF16BIT,相加是29),那么大小就是2^29次方。
那2的29次方怎么计算呢,当然可以用计算器,但是,如果考试的话怎么能带计算器呢?嘿嘿,经过我的求教,我的同时说作为一个程序员这都不知道,你可以拆解啊。例如

  • 2^10=1024(1K)
  • 2^20=1,048,576(1M)
  • 2^30=1,073,741,824(1G)

综上可得,2^29 = (2^30)/2 =(1G/2)=512M么?如果你想用别的方法也可以229=229=(210)3/2=(1024)^3/2,当然这种方法不推荐,也基本用不上,考试也不会考

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网划分   Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。其中A类网络有126个,每个A类网络可能有16,777,214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16,777,214个地址大部分没有分配出去,形成了浪费。而另一方面,随着互连网应用的不断扩大,IP地址资源越来越少。为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。   1. 子网掩码   RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。由此可知,A类网络的缺省的子网掩码是255.0.0.0,B类网络的缺省的子网掩码是255.255.0.0,C类网络的缺省的子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即“/”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。   子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。   主机一   222.21.160.6即:11011110.00010101.10100000.00000110   255.255.255.192即:11111111.11111111.11111111.11000000   按位逻辑与运算结果为: 11011110.00010101.10100000.00000000   主机二   222.21.160.73 即:11011110.00010101.10100000.01001001   255.255.255.192即:11111111.11111111.11111111.11000000   按位逻辑与运算结果为:11011110.00010101.10100000.01000000   两个结果不同,也就是说,两台主机不在同一网络,数据需先发送给默认网关,然后再发送给主机二所在网络。那么,假如主机二的子网掩码误设为255.255.255.128,会发生什么情况呢?   让我们将主机二的IP地址与错误的子网掩码相“与”:   222.21.160.73 即:11011110.00010101.10100000.01001001   255.255.255.128即:11111111.11111111.11111111.10000000   结果为 11011110.00010101.10100000.00000000   这个结果与主机的网络地址相同,主机与主机二将被认为处于同一网络中,数据不再发送给默认网关,而是直接在本网内传送。由于两台主机实际并不在同一网络中,数据包将在本子网内循环,直到超时并抛弃。数据不能正确到达目的机,导致网络传输错误。   反过来,如果两台主机的子网掩码原来都是255.255.255.128,误将主机二的设为255.255.255.192,主机一向主机二发送数据时,由于IP地址与错误的子网掩码相与,误认两台主机处于不同网络,则会将本来属于同一子网内的机器之间的通信当作是跨网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。所以,子网掩码不能任意设置,子网掩码的设置关系到子网的划分。   2. 子网划分与掩码的设置   子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2位主机位,产生4个子网,每个子网有62个主机地址……每个网中,第一个IP地址(即主机部分全部为0的IP)和最后一个IP(即主机部分全部为1的IP)不能分配给主机使用,所以每个子网的可用IP地址数为总IP地址数量减2;根据子网ID借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数,列表如下:   ① 划分子网数   ② 子网位数   ③ 子网掩码(二进制)   ④ 子网掩码(十进制)   ⑤ 每个子网主机数   ① 1~2   ② 1   ③ 11111111.11111111.11111111.10000000   ④ 255.255.255.128   ⑤ 126   ① 3~4   ② 2   ③ 11111111.11111111.11111111.11000000   ④ 255.255.255.192   ⑤ 62   ① 5~8   ② 3   ③ 11111111.11111111.11111111.11100000   ④ 255.255.255.224   ⑤ 30   ① 9~16   ② 4   ③ 11111111.11111111.11111111.11110000   ④ 255.255.255.240   ⑤ 14   ① 17~32   ② 5   ③ 11111111.11111111.11111111.11111000   ④ 255.255.255.248   ⑤ 6   ① 33~64   ② 6   ③ 11111111.11111111.11111111.11111100   ④ 255.255.255.252   ⑤ 2   如上表所示的C类网络中,若子网占用7位主机位时,主机位只剩一位,无论设为0还是1,都意味着主机位是全0或全1。由于主机位全0表示本网络,全1留作广播地址,这时子网实际没有可用主机地址,所以主机位至少应保留2位。   从上表可总结出子网划分的步骤或者说子网掩码的计算步骤:   2.1 确定要划分的子网数目以及每个子网的主机数目。   2.2 求出子网数目对应二进制数的位数N及主机数目对应二进制数的位数M。   2.3 对该IP地址的原子网掩码,将其主机地址部分的前N位置 1或后M位置0 即得出该IP地址划分子网后的子网掩码。   例如,对B类网络135.41.0.0/16需要划分为20个能容纳200台主机的网络。因为16<20<32,即:2的4次方<20<2的5次方,所以,子网位只须占用5位主机位就可划分成32个子网,可以满足划分成20个子网的要求。B类网络的默认子网掩码是255.255.0.0,转换为二进制为11111111.11111111.00000000.00000000。现在子网又占用了5位主机位,根据子网掩码的定义,划分子网后的子网掩码应该为11111111.11111111.11111000.00000000,转换为十进制应该为255.255.248.0。现在我们再来看一看每个子网的主机数。子网中可用主机位还有11位,2的11次方=2048,去掉主机位全0和全1的情况,还有2046个主机ID可以分配,而子网能容纳200台主机就能满足需求,按照上述方式划分子网,每个子网能容纳的主机数目远大于需求的主机数目,造成了IP地址资源的浪费。为了更有效地利用资源,我们也可以根据子网所需主机数来划分子网。还以上例来说,128<200<256,即2^7<200<2^8,也就是说,在B类网络的16位主机位中,保留8位主机位,其它的16-8=8位当成子网位,可以将B类网络138. 96.0.0划分成256(2^8)个能容纳256-1-1-1=253台(去掉全0全1情况和留给路由器的地址)主机的子网。此时的子网掩码为11111111.11111111.11111111.00000000,转换为十进制为255.255.255.0。   在上例中,我们分别根据子网数和主机数划分了子网,得到了两种不同的结果,都能满足要求,实际上,子网占用5~8位主机位时所得到的子网都能满足上述要求,那么,在实际工作中,应按照什么原则来决定占用几位主机位呢?   在划分子网时,不仅要考虑目前需要,还应了解将来需要多少子网和主机。对子网掩码使用比需要更多的主机位,可以得到更多的子网,节约了IP地址资源,若将来需要更多子网时,不用再重新分配IP地址,但每个子网的主机数量有限;反之,子网掩码使用较少的主机位,每个子网的主机数量允许有更大的增长,但可用子网数量有限。一般来说,一个网络中的节点数太多,网络会因为广播通信而饱和,所以,网络中的主机数量的增长是有限的,也就是说,在条件允许的情况下,会将更多的主机位用于子网位。   综上所述,子网掩码的设置关系到子网的划分。子网掩码设置的不同,所得到的子网不同,每个子网能容纳的主机数目不同。若设置错误,可能导致数据传输错误。   补充:   子网划分(subnetting)的优点:   1.减少网络流量   2.提高网络性能   3.简化管理   4.易于扩大地理范围   How to Creat Subnets   如何划分子网?首先要熟记2的幂:2的0次方到9次方的值分别为:1,2,4,8,16,32,64,128,256和512.还有要明白的是:子网划分是借助于取走主机位,把这个取走的部分作为子网位.因此这个意味划分越多的子网,主机将越少   Subnet Masks   子网掩码用于辨别IP地址中哪部分为网络地址,哪部分为主机地址,有1和0组成,长32位,全为1的位代表网络号.不是所有的网络都需要子网,因此就引入1个概念:默认子网掩码(default subnet mask).A类IP地址的默认子网掩码为255.0.0.0;B类的为255.255.0.0;C类的为255.255.255.0   Classless Inter-Domain Routing(CIDR)   CIDR叫做无类域间路由,ISP常用这样的方法给客户分配地址,ISP提供给客户1个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,最大/32.但是你必须知道的1点是:不管是A类还是B类还是其他类地址,最大可用的只能为30/,即保留2位给主机位   CIDR值:   1.掩码255.0.0.0:/8(A类地址默认掩码)   2.掩码255.128.0.0:/9   3.掩码255.192.0.0:/10   4.掩码255.224.0.0:/11   5.掩码255.240.0.0:/12   6.掩码255.248.0.0:/13   7.掩码255.252.0.0:/14   8.掩码255.254.0.0:/15   9.掩码255.255.0.0:/16(B类地址默认掩码)   10.掩码255.255.128.0:/17   11.掩码255.255.192.0:/18   12.掩码255.255.224.0:/19   13.掩码255.255.240.0:/20   14.掩码255.255.248.0:/21   15.掩码255.255.252.0:/22   16.掩码255.255.254.0:/23   17.掩码255.255.255.0:/24(C类地址默认掩码)   18.掩码255.255.255.128:/25   19.掩码255.255.255.192:/26   20.掩码255.255.255.224:/27   21.掩码255.255.255.240:/28   22.掩码255.255.255.248:/29   23.掩码255.255.255.252:/30   Subnetting Class A,B&C Address   划分子网的几个捷径:   1.你所选择的子网掩码将会产生多少个子网?:2的x次方-2(x代表掩码位,即2进制为1的部分,现在的网络中,已经不需要-2,已经可以全部使用,不过需要加上相应的配置命令,例如CISCO路由器需要加上ip subnet zero命令就可以全部使用了。)   2.每个子网能有多少主机?: 2的y次方-2(y代表主机位,即2进制为0的部分)   3.有效子网是?:有效子网号=256-10进制的子网掩码(结果叫做block size或base number)   4.每个子网的广播地址是?:广播地址=下个子网号-1   5.每个子网的有效主机分别是?:忽略子网内全为0和全为1的地址剩下的就是有效主机地址.最后有效1个主机地址=下个子网号-2(即广播地址-1)   根据上述捷径划分子网的具体实例:   C类地址例子:网络地址192.168.10.0;子网掩码255.255.255.192(/26)   1.子网数=2*2-2=2   2.主机数=2的6次方-2=62   3.有效子网?:block size=256-192=64;所以第一个子网为192.168.10.64,第二个为192.168.10.128   4.广播地址:下个子网-1.所以2个子网的广播地址分别是192.168.10.127和192.168.10.191   5.有效主机范围是:第一个子网的主机地址是192.168.10.65到192.168.10.126;第二个是192.168.10.129到192.168.10.190   B类地址例子1:网络地址:172.16.0.0;子网掩码255.255.192.0(/18)   1.子网数=2*2-2=2   2.主机数=2的14次方-2=16382   3.有效子网?:block size=256-192=64;所以第一个子网为172.16.64.0,最后1个为172.16.128.0   4.广播地址:下个子网-1.所以2个子网的广播地址分别是172.16.127.255和172.16.191.255   5.有效主机范围是:第一个子网的主机地址是172.16.64.1到172.16.127.254;第二个是172.16.128.1到172.16.191.254   B类地址例子2:网络地址:172.16.0.0;子网掩码255.255.255.224(/27)   1.子网数=2的11次方-2=2046(因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11)   2.主机数=2的5次方-2=30   3.有效子网?:block size=256-224=32;所以第一个子网为172.16.0.32, 最后1个为172.16.255.192   4.广播地址:下个子网-1.所以第一个子网和最后1个子网的广播地址分别是172.16.0.63和172.16.255.223   5.有效主机范围是:第一个子网的主机地址是172.16.0.33到172.16.0.62;最后1个是172.16.255.193到172.16.255.222   Variable Length Subnet Masks(VLSM)   可变长子网掩码(VLSM)的作用:节约IP地址空间;减少路由表大小.使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP. 关于更多的VLSM知识,可以去Google.com进行搜索
一共20套题,含有答案 以下是其中一套题 本科生期末试卷 一 一. 选择题 (每小题1分,共10分) 1. 计算机系统中的存贮器系统是指______。 A RAM存贮器 B ROM存贮器 C 主存贮器 D cache、主存贮器和外存贮器 2. 某机字长32位,其中1位符号位,31位表示尾数。若用定点小数表示,则最大正小数为______。 A +(1 – 2-32) B +(1 – 2-31) C 2-32 D 2-31 3. 算术 / 逻辑运算单元74181ALU可完成______。 A 16种算术运算功能 B 16种逻辑运算功能 C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节的所有存贮元集合; 5. 相联存贮器是按______进行寻址的存贮器。 A 地址方式 B 堆栈方式 C 内容指定方式 D 地址方式与堆栈方式 6. 变址寻址方式中,操作数的有效地址等于______。 A 基值寄存器内容加上形式地址(位移量) B 堆栈指示器内容加上形式地址(位移量) C 变址寄存器内容加上形式地址(位移量) D 程序记数器内容加上形式地址(位移量) 7. 以下叙述中正确描述的句子是:______。 A 同一个CPU周期中,可以并行执行的微操作叫相容性微操作 B 同一个CPU周期中,不可以并行执行的微操作叫相容性微操作 C 同一个CPU周期中,可以并行执行的微操作叫相斥性微操作 D 同一个CPU周期中,不可以并行执行的微操作叫相斥性微操作 8. 计算机使用总线结构的主要优点是便于实现积木化,同时______。 A 减少了信息传输量 B 提高了信息传输的速度 C 减少了信息传输线的条数 D 加重了CPU的工作量 9. 带有处理器的设备一般称为______设备。 A 智能化 B 交互式 C 远程通信 D 过程控制 10.某中断系统中,每抽取一个输入数据就要中断CPU一次,中断处理程序接收取样的数 据,并将其保存到主存缓冲区内。该中断处理需要X秒。另一方面,缓冲区内每存储 N 个数据,主程序就将其取出进行处理,这种处理需要Y秒,因此该系统可以跟踪到每 秒______次中断请求。 A.N / (NX + Y) B. N / (X + Y)N C .min[1 / X ,1 / Y] D. max[1 / X ,1 / Y] 二. 填空题(每小题3分,共15分) 1.存储A.______并按B.______顺序执行,这是C.______型计算机的工作原理。 2.移码表示法主要用于表示A.______数的阶码E,以利于比较两个B.______的大小和 C.______操作。 3.闪速存储器能提供高性能、低功耗、高可靠性及A.______能力,为现有的B.______体 系结构带来巨大变化,因此作为C.______用于便携式电脑中。 4.微程序设计技术是利用A.______方法设计B.______的一门技术。具有规整性、可维护 性、C .______等一系列优点。 5.衡量总线性能的重要指标是A.______,它定义为总线本身所能达到的最高B.______。PCI 总线的带宽可达C.______。 三.(10分)设机器字长32位,定点表示,尾数31位,数符1位,问: (1) 定点原码整数表示时,最大正数是多少?最小负数是多少? (2) 定点原码小数表示时,最大正数是多少?最小负数是多少? 四.(9分)设存储器容量为32字,字长64位,模块数m = 4,分别用顺序方式和交叉方式进行组织。存储周期T = 200ns,数据总线宽度为64位,总线周期τ = 50ns .问顺序存储器和交叉存储器的带宽各是多少? 五.(9分)指令格式如下所示,OP为操作码字段,试分析指令格式特点。 31 26 22 18 17 16 15 0 OP 源寄存器 变址寄存器 偏移量 六.(9分)已知某机采用微程序控制方式,其控制存储器容量为512×48(位),微程序在整个控制存储器中实现转移,可控制的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式,如图所示:
### 回答1: IPv6地址掩码计算工具是一种帮助网络工程师计算IPv6地址掩码的实用工具。在IPv6中,地址掩码通常表示为CIDR的格式,也可以称为前缀长度。例如,掩码为64表示地址的前64位为网络地址,其余的为主机地址。因此,掩码能够帮助确定一个IPv6地址在网络中的位置。 使用IPv6地址掩码计算工具,用户只需要输入IPv6地址和相关的掩码长度,然后点击“计算”按钮,工具即可自动计算出对应的网络地址和广播地址。此外,该工具还可以显示主机地址范围,可用地址数量等信息,可以非常方便地帮助网络工程师快速地了解网络拓扑结构。 利用IPv6地址掩码计算工具,网络工程师可以更加方便地进行IP地址规划和管理。特别是在大型企业和数据中心网络中,IPv6地址掩码计算工具非常有用,可以帮助管理员准确地分配地址和管理网络。由于IPv6地址长度远远大于IPv4地址长度,因此IPv6地址掩码计算工具成为了网络工程师必备的工具之一。 ### 回答2: IPv6地址是由128位二进制数组成的,这意味着它比IPv4地址需要更大的空间。IPv6地址掩码计算工具可以帮助人们计算掩码,并且使人们能够更好地理解IPv6地址。 IPv6掩码是128位比特的一串二进制数字,用于指定网络标识和主机标识的位置。这个掩码可以根据所需的网络大小进行调整,从而确保该网络有足够的IP地址可用。 IPv6地址掩码计算工具可以帮助人们快速计算出正确的掩码,并且还可以提供一些有用的信息,例如网络前缀、主机标识和子网地址等。 在使用IPv6地址掩码计算工具时,用户需要注意以下几点: 1. 输入正确的IPv6地址:在使用掩码计算工具时,首先要输入IPv6地址,确保输入的地址是正确的,否则计算就会出错。 2. 选择正确的掩码长度:掩码长度是指该掩码将网络标识和主机标识分开的位置。掩码长度越长,可用的主机数就越少。 3. 理解二进制计算:IPv6地址和掩码都是由二进制数字组成的,因此,使用掩码计算工具时需要熟悉如何进行二进制计算。 总的来说,IPv6地址掩码计算工具是一个非常有用的工具,它可以帮助人们更好地理解IPv6地址和掩码的概念,并且支持人们更好地计算IP地址和掩码,从而更好地设计IPv6网络。 ### 回答3: ipv6地址掩码计算工具是一个在线工具,可以帮助用户计算任意IPv6地址的子网掩码及CIDR表示,同时可以对IPv6地址和子网掩码进行二进制转换和反转,帮助用户更方便地理解IPv6地址掩码。 使用IPv6地址掩码计算工具需要输入IPv6地址以及所需的子网掩码前缀长度,工具会自动计算出子网掩码和CIDR表示。用户也可以通过工具内置的二进制转换器将IPv6地址和子网掩码转换成二进制格式,以更加深入地了解IPv6地址掩码的原理。 IPv6地址掩码计算工具在IPv6地址规划和网络工程中具有重要的应用价值。它可以帮助用户对IPv6地址进行精细划分,使得网络的管理更加灵活和高效。同时,掌握IPv6地址掩码计算工具也是网络工程师必备的技能之一。 总之,IPv6地址掩码计算工具是一个实用性很高的在线工具,可以帮助用户更加方便地计算IPv6地址的子网掩码及CIDR表示,并加深对IPv6网络的理解和掌握。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值