gpt4 book ai didi

.net - 为什么使用十六进制作为数组索引

转载 作者:行者123 更新时间:2023-12-05 00:39:01 24 4
gpt4 key购买 nike

我最近使用 .net 反射器查看一些 DLL 文件,我注意到其中一个使用十六进制而不是十进制作为其数组索引。

public Random(int Seed)
{
this.SeedArray = new int[0x38];
int num2 = 0x9a4ec86 - Math.Abs(Seed);
this.SeedArray[0x37] = num2;
int num3 = 1;
for (int i = 1; i < 0x37; i++)
{
int index = (0x15 * i) % 0x37;
this.SeedArray[index] = num3;
num3 = num2 - num3;
if (num3 < 0)
{
num3 += 0x7fffffff;
}
num2 = this.SeedArray[index];
}
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 0x38; k++)
{
this.SeedArray[k] -= this.SeedArray[1 + ((k + 30) % 0x37)];
if (this.SeedArray[k] < 0)
{
this.SeedArray[k] += 0x7fffffff;
}
}
}
this.inext = 0;
this.inextp = 0x15;
Seed = 1;
}

为什么作者使用十六进制而不是十进制?

最佳答案

无论整数文字最初是以十六进制还是十进制(或者说,三元,假设编程语言支持它)在源代码中编写的,都不会写入 IL。你看到的是反编译器的猜测。

事实上,您可以通过设置以十进制形式查看所有这些文字:

View -> Options -> Disassembler -> Number Format : Decimal

关于.net - 为什么使用十六进制作为数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com