Beim Konvertieren einer String
in BigInteger
berechnet Java intern die Anzahl der Bits und dann die Anzahl der Wörter (jedes Wort ist eine Gruppe von 9 ganzen Zahlen, denke ich) in einem BigInteger gesehen here von der Linie 325 zur Linie 327. numWords
verwendet wird dann ein Array zu erstellen, empfangen kann, dass BigInteger.
Berechnen der Anzahl der Bits und der Anzahl der Wörter BigInteger
ich nicht die Logik verstehen verwendet für numBits
in Zeile 325 zu berechnen und dann die Logik für numWords
in Zeile 326.
Logisch denke ich, dass für die Zeichenfolge "123456 789 ", numWords
sollte 1 sein und für" 12345678912 ", sollte 2 sein, aber das ist nicht immer der Fall. Zum Beispiel für "12345678912345678912", numWords
sollte 3 sein, aber es kommt heraus, um 2 zu sein.
Kann jemand bitte die in Zeile 325 und 326 verwendete Logik erklären?
Im traditionellen 16-Bit-Modus wird ein Wort als 16 Bit oder 2 8 Byte oder als Ganzzahl ausgedrückt. Im 32-Bit-Modus hat eine ganze Zahl mit 32 Bit oder 4 Byte ein Wort ersetzt. A die Linie auf 326 sieht aus wie es mit Zweierkomplement zu tun hat. – t0mm13b