C 31位方案中的最后一个地址是什么

C 31位方案中的最后一个地址是什么,c,bit-manipulation,bit,C,Bit Manipulation,Bit,我有一个31位宽的寄存器,现在我混淆了两个可以用作最后地址31位方案的数字 0x7fff fffc或0x8000000是31方案中可以使用的最后一个地址 0x7fff fffc或0x8000000是31方案中可以使用的最后一个地址 它们都不是-最后一个地址是0x7fffffff(不是c)。对于0x8000000,您已经需要设置第32位 正如@mbrach所指出的,0x7ffffffc将是寻址32位字的最后一个地址,或者类似地0x7ffffe将是寻址16位字的最后一个地址 0x7fff fffc或

我有一个31位宽的寄存器,现在我混淆了两个可以用作最后地址31位方案的数字

0x7fff fffc或0x8000000是31方案中可以使用的最后一个地址

0x7fff fffc或0x8000000是31方案中可以使用的最后一个地址

它们都不是-最后一个地址是
0x7fffffff
(不是
c
)。对于
0x8000000
,您已经需要设置第32位

正如@mbrach所指出的,
0x7ffffffc
将是寻址32位字的最后一个地址,或者类似地
0x7ffffe
将是寻址16位字的最后一个地址

0x7fff fffc或0x8000000是31方案中可以使用的最后一个地址

它们都不是-最后一个地址是
0x7fffffff
(不是
c
)。对于
0x8000000
,您已经需要设置第32位


正如@mbrach所指出的,
0x7ffffffc
将是寻址32位字的最后一个地址,或者类似地,
0x7ffffe
将是寻址16位字的最后一个地址。

地址从零开始。因此,如果您正在寻址字节,则
0x7FFFFFFF
<如果要寻址32位字,则代码>0x7FFFFFFC。

地址从零开始。因此,如果您正在寻址字节,则
0x7FFFFFFF
0x7FFFFFFC
如果要寻址32位字。

假设一个地址仅用于引用4大块内存(如字节),7ffffffc是最后一个

通常我们以8位字节来寻址内存,但没有这样做的内在需要。任何数量的字节都可以进入可寻址的对象

然后,我们开发了一种约定,我们为每个字节分配地址,但只加载2或4块(或任何数字)的内存,因此我们构建硬件以忽略最后1或2或任何少数地址行

值80000000不适合31位

值7fffffff适合31个字节,如果可以寻址单个字节的内存,则可以使用该值


7FFFFC值也适用于31个字节,如果一次只能在4个字节的对齐块中寻址字节,则将使用该值。

假设一个地址仅用于引用4大块内存(如字节),7ffffffc是最后一个

通常我们以8位字节来寻址内存,但没有这样做的内在需要。任何数量的字节都可以进入可寻址的对象

然后,我们开发了一种约定,我们为每个字节分配地址,但只加载2或4块(或任何数字)的内存,因此我们构建硬件以忽略最后1或2或任何少数地址行

值80000000不适合31位

值7fffffff适合31个字节,如果可以寻址单个字节的内存,则可以使用该值


值7ffffffc也适用于31个字节,如果您一次只能在4个字节的对齐块中寻址字节,则将使用该值。

0x7FFFFFF表示字节地址。yep 7FFFFFFF表示31位所有设置0x7FFFFFFFF表示字节地址。yep 7FFFFFFF表示31位所有设置感谢您的回答,如果要寻址字节,请解释一下0x7FFFFFFF的意思,如果要寻址32位字,请解释一下0x7FFFFFFC的意思。我的意思是它们有什么不同。@Amit如果我们说的是硬件,那么你在总线上放一个地址,然后从内存中得到一个值。如果内存是32位可寻址的,则最高32位字地址为
0x7FFF FFFC
。如果您正在寻址字节并返回8位值,那么您将使用
0x7FFF FFFF
。这完全取决于硬件支持什么。如果它们是16位字,那么最高地址将是
0x7FFF FFFE
。我可能不完全理解你在这个问题上的意图@Amit,或者换句话说,如果您在
0x7ffffffc
处访问32个数据位,则硬件在
0x7ffffc
处访问四个字节,
0x7ffffffd
0x7ffffe
0x7fffff
ok fine@mbratch,我有没有办法找到支持16位字或32位字的H/W,或者我所要做的就是查看H/Wspecs@AmitSinghTomar您需要查看特定硬件平台的规格。谢谢您的回答,如果要寻址字节,请解释一下0x7FFFFFFF的意思,如果要寻址32位字,请解释一下0x7FFFFFFC的意思。我的意思是它们有什么不同。@Amit如果我们说的是硬件,那么你在总线上放一个地址,然后从内存中得到一个值。如果内存是32位可寻址的,则最高32位字地址为
0x7FFF FFFC
。如果您正在寻址字节并返回8位值,那么您将使用
0x7FFF FFFF
。这完全取决于硬件支持什么。如果它们是16位字,那么最高地址将是
0x7FFF FFFE
。我可能不完全理解你在这个问题上的意图@Amit,或者换句话说,如果您在
0x7ffffffc
处访问32个数据位,则硬件在
0x7ffffc
处访问四个字节,
0x7ffffffd
0x7ffffe
0x7fffff
ok fine@mbratch,我有没有办法找到支持16位字或32位字的H/W,或者我所要做的就是查看H/Wspecs@AmitSinghTomar您需要查看特定硬件平台的规格。