Kann mir jemand erklären wie genau dieser Java Integer to binary Converter funktioniert?
String binary=" ";
while(num > 0) {
binary = (num%2)+binary;
num /= 2;
}
Also ich schätze einfach mal
Durch die while schleife wird der Code darin ja immer wieder ausgeführt bis der eingegeben Integer bei 0 ist. Aber was genau passiert bei " binary = (num%2) + binary.
Ich weiß wie ein Modulo operant funtkioniert, aber blicke trotzdem nicht durch.
2 Antworten
Genau, die Schleife läuft einfach so lange, bis num 0 ist. Dabei ist wichtig zu wissen, dass bei einer Integer-Division einfach die Nachkommastellen abgeschnitten werden. Also 1/2 ist nicht 0,5 sondern 0.
Das "(num%2)" berechnet den Rest, der bei num/2 übrig bleibt. Z.B. 5/2 = 2 Rest 1. Und die 1 wird dann mit "+binary" einfach vorne an den bestehenden String angehängt.
num /= 2 heißt einfach, dass num halbiert wird (aber eben als Integer-Division, also ohne Nachkommastellen)
Das ist eine einfache String-Addition.
Bei jedem Durchlauf wird hier entweder 0 oder 1 auf der linken Seite der bereits vorhandenen Zeichenkette ergänzt.