Hey, ich möchte eine vier Bit Zahl hochzählen lassen und es dann als Binärzahl ausgeben.
Mein Plan war es eigentlich das eine for-Schleife hochzählt und dann abfrägt:
"Ist die angegebene Zahl größer als 8?"
wenn ja
ersteStelle = "1";
"Ist die angegebene Zahl größer als 4?"
wenn ja
zweiteStelle = "1";
So setzten sich also die vier Bit zahlen nach einander zusammen
Das sind die vier Bit Zahlen
[CODE lang="java" title="Bitzahlen"]//0001 - 1
//0010 - 2
//0011 - 3
//0100 - 4
//0101 - 5
//0110 - 6
//0111 - 7
//1000 - 8
//1001 - 9
//1010 - 10
//1011 - 11
//1100 - 12
//1101 - 13
//1110 - 14
//1111 - 15[/CODE]
Wenn ich das mit einer normalen if-Abfrage mache und die Zahl vorher definiere funktioniert alles perfekt
[CODE lang="java" title="if-Abfrage"]vierBit = 12
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
int teilergebnis = vierBit;
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]
Doch wenn ich den Code in eine for-Schleife packe
[CODE lang="java" title="for-Schleife"]vierBit = 0;
for(int i = 0; i <= 15; i++) {
int teilergebnis = vierBit;
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]
doch dann ist die Ausgabe:
"Die Bitzahl von 15 ist: 0000"
wie löse ich das Problem
Mein Plan war es eigentlich das eine for-Schleife hochzählt und dann abfrägt:
"Ist die angegebene Zahl größer als 8?"
wenn ja
ersteStelle = "1";
"Ist die angegebene Zahl größer als 4?"
wenn ja
zweiteStelle = "1";
So setzten sich also die vier Bit zahlen nach einander zusammen
Das sind die vier Bit Zahlen
[CODE lang="java" title="Bitzahlen"]//0001 - 1
//0010 - 2
//0011 - 3
//0100 - 4
//0101 - 5
//0110 - 6
//0111 - 7
//1000 - 8
//1001 - 9
//1010 - 10
//1011 - 11
//1100 - 12
//1101 - 13
//1110 - 14
//1111 - 15[/CODE]
Wenn ich das mit einer normalen if-Abfrage mache und die Zahl vorher definiere funktioniert alles perfekt
[CODE lang="java" title="if-Abfrage"]vierBit = 12
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
int teilergebnis = vierBit;
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]
Doch wenn ich den Code in eine for-Schleife packe
[CODE lang="java" title="for-Schleife"]vierBit = 0;
for(int i = 0; i <= 15; i++) {
int teilergebnis = vierBit;
if (vierBit >= 8) {
ersteStelle = "1";
vierBit = vierBit - vierterBit;
}
if (vierBit >= 4) {
zweiteStelle = "1";
vierBit = vierBit - dritterBit;
}
if (vierBit >= 2) {
dritteStelle = "1";
vierBit = vierBit - zweiterBit;
}
if (vierBit >= 1) {
vierteStelle = "1";
}
}
ergebnis = ("Die Bitzahl von "+teilergebnis+" ist: "+ersteStelle + zweiteStelle + dritteStelle + vierteStelle);
System.out.println(ergebnis);[/CODE]
doch dann ist die Ausgabe:
"Die Bitzahl von 15 ist: 0000"
wie löse ich das Problem