Java Zahlenformate umrechnen

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
556
Hallo,
ich verstehe einfach nicht was an folgendem Code falsch sein soll:
Code:
int number[] = new int[numbersOfNumbers];

for (int i = numbersOfNumbers ; i > 0; i--)  {
            number[numbersOfNumbers - i] = (dummyB / (base ^ (i-1)));
}

numberOfNumbers gibt mir die Anzahl an Stellen einer Dezimalzahl an.
Also z.B. Dezimalzahl: 12345 -->numbersOfNumbers=5

dummyB ist die Dezimalzahl also z.B. 12345

base ist 10

Wenn ich das Ganze nun durchlaufen lasse wird im ersten Feld des Arrays number die Zahl 881 eingetragen.
Aber warum ist das so?
Ich rechne ja eigentlich 12345/(10^4)=1,2345. Da ich das ganze als int speichere müsste eigentlich eine 1 eingetragen werden.

Wisst Ihr wo mein Denkfehler liegt?
 
Der ^-Operator ist ein bitweises XOR. Das willst du hier nicht haben. Potenzen machst du in Java mit **. Alternativ mit Math.pow(a,b), aber das arbeitet mit Doubles.
 
Da, wie schon geschrieben, ^ der XOR Operator ist ergibt sich folgendes:
10 => 1010
4 => 0100

XOR der beiden ergibt 1110 entsprechend 14 dezimal. Daher wird 12345 durch 14 geteilt, was wiederum 881,... ergibt.
 
Achso, da wäre ich ja nie drauf gekommen.
Danke euch :)
 

Ähnliche Themen

Antworten
8
Aufrufe
5.482
Green Mamba
G
Antworten
5
Aufrufe
7.881
Zurück
Oben