为什么0x8FFFFFF等于128MB?

Xin*_*Xin 1 hex

我有时会看到这样的代码:

int length = 0x8FFFFFF; //128MB
byte buf = new byte[length];
Run Code Online (Sandbox Code Playgroud)

对我来说,这没有什么意义,因为:

0x8FFFFFF = 150,994,943
128MB = 128 * 1024 * 1024字节= 134,217,728字节

这两个数字不相等。我在这里想念什么?

谢谢,

Ign*_*ams 5

以前有人在7那儿,但是8为了避免一次失误将其更改为一个,但忘记将其余部分更改为0

  • 呵呵。这可能是最有可能的解释。7FFFFFF 是 (128MB - 1)。 (2认同)