我有一个我无法解决的问题, 我有3个内存范围:
First @ Last @
范围1:FD00 0000到FDFF FFFF
范围2:D000 0000到DFFF FFFF
范围3:FA00 0000到FBFF FFFF
问题是:给出每个范围(兆字节)的内存大小?
我所知道的是我应该计算范围的大小=最后一个地址 - 第一个地址 所以第一个范围的结果是:00FF FFFF。 这是正确的吗?那我该怎么办?我在互联网上搜索过我没有找到一个例子
请帮忙
答案 0 :(得分:5)
在范围1的示例中,您是对的。这是以十六进制表示的内存大小,以字节为单位。
您可以通过首先将00FF FFFF转换为十进制数,然后将该字节数转换为兆字节来获得最大的洞察力。
要从字节转换为兆字节,请使用关系
1 MB = 1 Megabyte = 1024 * 1 KB = 1,048,576 bytes.
有大量在线Hex到Decimal转换器。内置于Windows的计算器也可以进行转换。
对于其他范围,您再次想要进行减法以确定范围的大小,然后应用上述步骤,例如
FBFF FFFF
-
FA00 0000
---------
01FF FFFF
通过这些步骤更好地掌握正在发生的事情,以下关系将使您能够更快地回答这些问题:
0010 0000 = 1,048,576
因此1MB与0010 0000(有时称为0x100000)相同。
答案 1 :(得分:2)
抱歉,回答其他问题的问题......
在规定范围内可用的地址数量是否包括范围限制器? 例如(以十进制表示我的观点),起始地址为5,结束地址为10.只有减法,即结束地址减去起始地址(10-5),我们得到的范围是5。 但实际上该范围内有六个唯一的地址,即5,6,7,8,9,10(所以我们应该在Julie的原始问题中将减法结果加1?)
此外,内存地址大小与实际内存大小相比。我们是在讨论单个内存位置的数量还是可用于存储数据的内存大小(应该考虑每个位置的大小)?
如果它只是内存位置,那么我们差不多完成了(我认为这被称为内存地址大小)。只需要解决问题的MB部分(我将在最后讨论该问题)
如果是可用存储空间,则应包括每个可寻址存储器部分的大小,例如:每个地址位置包含一个未知大小的数据块。假设每个内存位置的数据是1字节(1B),而不是上面的例子意味着内存大小是: 6(存储器位置)乘以1字节(每个存储器位置的体积),总存储器大小为6B
基于我的逻辑,范围1 原始问题的答案应为01000000hex(范围1 = FDFF FFFF-FD00 0000 + 1 = 01000000h )。
至于那个范围的内存大小,这是我真的很困惑的地方.... 它是特定数量的存储器位置,即1000000h,每个位置具有一些未确定的大小。那么为什么用MB或GB来表达呢。如果您确实知道每个内存位置的大小(并将位置数乘以每个位置的大小,那么您就拥有该范围的内存大小,并且可以用数字形式表示。
虽然我们在这里,我真正感到困惑的是MB,GB等的使用。经常被引用,因为每个前缀相当于1024的倍数,例如1KB = 1024Bytes,1MB = 1024kB等,但IEC首选约定基于ISO标准(根据我刚才的谷歌搜索),其中说Kilo(kB)= 1000,Mega(MB)= 1000000等。
因此,将每个位置的未知大小放在一边,并将1000000h转换为十进制,即16,777,216,答案是:
答案 2 :(得分:1)
等式是
public void methodToAccessSortOrder() {
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("<CLIENT ID OF DATATABLE>");
String sortOrder = dataTable.getSortOrder();
// do anything with sortOrder
}
示例
second_add - first_add + 1
答案 3 :(得分:0)
range1: FD00 0000 to FDFF FFFF:
FD FF FFFF
- FD 00 0000
------------
FF FFFF = 1MB (0x100 0000)
range2 : D000 0000 to DFFF FFFF = 256MB (0x1000 0000)
range3 : FA00 0000 to FBFF FFFF = 32MB (0x200 0000)
答案 4 :(得分:0)
为了让您轻松理解我只需更改如下问题,2-9范围内存的大小是多少?。
答案是8如下2,3,4,5,6,7,8,9。公式是最高地址 - 最低地址+1。
对于你的第一个问题范围1:FD00 0000到FDFF FFFF,答案是00FF FFFF + 1 = 0100 0000H = 1 X 16 ^ 6 = 1 X(2 ^ 4)^ 6 = 2 ^ 24 = 2 ^ 4 x 2 ^ 20。对于二进制系统2 ^ 10 = 1024 = 1K和2 ^ 20 = 1K x 1 K = 1M然后2 ^ 4 x 2 ^ 20 = 16 M.对于第二个和第三个问题,请做同样的事情。祝你好运。
答案 5 :(得分:0)
简单类比,0到9之间的金额范围(地址)是多少? 答案是10,而不是9,因为已计算范围/地址0。
所以, 容量=最后一个地址-第一个地址+ 1。
范围1:FD00 0000至FDFF FFFF的容量为 FDFF FFFF-FD00 000 +1 = FF FFFF +1 = 100 0000(十六进制) 或dec(16MB)中的16777216。
答案 6 :(得分:-1)
我认为公式
size = end - begin
总是可以使用(与其他尺码没有区别,即裤子的腰部)
由于HEX和DEC,内存大小使得它变得更难,其中十进制对于人类来说很容易阅读,并且通常使用B(字节)。为了方便起见,如果你安装了bc,你可能想尝试
echo 'ibase=16;yourendhex-yourbeginhex' | bc
在你的情况下
echo 'ibase=16;FDFFFFFF-FD000000' | bc
echo 'ibase=16;DFFFFFFF-D0000000' | bc
echo 'ibase=16;FBFFFFFF-FA000000' | bc
16777215 #16MB
268435455 #268MB
33554431 #34MB