2011-02-02 37 views
4

我最近使用.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; 
} 

爲什麼作者使用十六進制而不是十進制?

+2

因爲他可能是從C源代碼:) – leppie 2011-02-02 17:27:10

回答

5

整數文字最初是否以十六進制或十進制(或者,假設編程語言支持它爲三進制)編寫在源代碼中,不會寫入IL中。你看到的是猜想由反編譯器。

事實上,你可能能夠通過設置來查看所有十進制那些文字的:

​​
相關問題