2014-04-01 48 views
2

我需要生成512個BigInts,但我不知道這下面兩個爲真:如何BigInteger的存儲

512位意味着1010101010...001010然後將其轉化爲其所代表的小數位數512?

或是否意味着512位數字的0-9,基本上是一個512位數字,數字範圍從0-9?類似於12414124124 .... 54543 = 512位數字。

+0

每一位代表一個0或1 – csmckelvey

+0

如果你真的想知道,查找的源代碼,你可以在你的JDK安裝目錄中的文件'src.zip'中找到。 – Jesper

回答

4

從源代碼,它們被存儲在一個陣列int

此BigInteger的大小,在大端順序:該數組的第零個元素是幅度的最顯著INT。由於最重要的int(mag [0])必須非零,所以幅度必須是「最小的」。這對確保每個BigInteger值只有一個表示形式是必需的。請注意,這意味着BigInteger零有一個零長度的mag數組。

118 
119  int[] mag; 
120 
121  // These "redundant fields" are initialized with recognizable nonsense 
122  // values, and cached the first time they are needed (or never, if they 
123  // aren't needed). 
124