Trainee
Date of registration: Oct 2nd 2006
Location: NRW -> Bad Oeynhausen
Occupation: B.Sc. Informatik, 8.Semester
Quoted
Zweiter Hinweis: Zur Überprüfung der Ergebnisse ist es nützlich, den Wert binär oder hexadezimal auszugeben.
Hierzu können Sie die Methoden Integer.toHexString(int) und Integer.toBinaryString(int)
verwenden (diese sollen für die Berechnung der Bedingungen allerdings nicht genutzt werden!).
Source code |
|
1 2 3 4 5 6 7 8 9 10 |
138 hat ein A in seiner Hexadezimaldarstellung siehe 8a 154 hat ein A in seiner Hexadezimaldarstellung siehe 9a 160 hat ein A in seiner Hexadezimaldarstellung siehe a0 161 hat ein A in seiner Hexadezimaldarstellung siehe a1 . . . 2811 hat ein A in seiner Hexadezimaldarstellung siehe afb 2812 hat ein A in seiner Hexadezimaldarstellung siehe afc 2813 hat ein A in seiner Hexadezimaldarstellung siehe afd |
Quoted
Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.
This post has been edited 4 times, last edit by "Kaos" (Apr 27th 2007, 4:08pm)
Die Hoffnung trügt Dich: 0xa0, 0xa1, 0xa2, 0xa3 ... haben alle ein "a", sind aber nicht im 16er Abstand.Quoted
Original von Kaos
Quoted
Original von retr0virus
Wo gerade schonmal ein Thema dazu da ist...
wie ist in der Aufgabe1 zu verstehen, dass keine String-Operationen zu verwenden sind?
Also z.B. kein .charAt() ?
Gerade bei der Methode mit der HEX-Überprüfung wäre es damit ja ein leichtes, nach dem char 'A' zu suchen...
Moin, es gibt sicher einige bessere Ideen als meine, aber du könntest ausnutzen, dass alle 16 Zahlen ein A auftauchen muss (hoffe ich zumindest), angefangen ab der 10.
Trainee
Date of registration: Oct 2nd 2006
Location: NRW -> Bad Oeynhausen
Occupation: B.Sc. Informatik, 8.Semester
Quoted
Original von paradroid
Tipp: Bitoperatoren
Quoted
Original von Philipp
@retr0virus
Benutze die Shift Operatoren, wenn du auf Bitebene arbeiten möchtest. Damit geht es auf jeden Fall und schneller wird man soetwas in Java nicht mehr implementieren können. Wenn du die 4 Bits dann jeweils immer "extrahiert hast" sollte der Vergleich auf 10 bzw 0xA dann ziemlich leicht werden ;-) .
Der Weg bis dahin ist natürlich etwas holperig, wenn man zum ersten Mal mit den Shiftoperationen arbeitet.
Alternativ, falls die Bitoperation dafür zu abschreckend ist, kann man ja auch noch die Zahl in die Koeffizienten zerlegen zur Basis 16 ( siehe Hinweis mit Math.pow ).
Quoted
Hierzu können Sie die Methoden Integer.toHexString(int) und Integer.toBinaryString(int)
verwenden (diese sollen für die Berechnung der Bedingungen allerdings nicht genutzt werden!).
Quoted
Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.
Quoted
Source code
1 2 3 4 5 Aufgabenstellung besagt aber noch folgendes: Zitat: Hierzu können Sie die Methoden Integer.toHexString(int) und Integer.toBinaryString(int) verwenden (diese sollen für die Berechnung der Bedingungen allerdings nicht genutzt werden!).
Quoted
Wenn man also jeweils 4 Bit untersuchen will, muss man die Zahl erstmal per Hand umwandeln. Das ist dann doch etwas zu aufwändig...
This post has been edited 2 times, last edit by "Philipp" (Apr 28th 2007, 5:31pm)
Quoted
Original von L A C K Y
9978 & 15 //wird Bitverknüpft und liefert als Ergebnis 10 = 000a, anschließend kann man die Zahl 4 mal shiften (9978 >> 4) und kann diese Prozedur weiterfüheren.. Beim Zweiten mal kommt das Ergebnis 15=000f heraus und damit wurde das Hex(f) gefunden.
This post has been edited 2 times, last edit by "Neo" (Apr 30th 2007, 10:43pm)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Weitere Möglichkeit: Das ganze Herumgeshifte vermeiden und gleich mit einem "Hexzähler" arbeiten. Also statt einer int-Zählvariablen ein Array von int (oder byte) nehmen, in dem jede Stelle von 0 bis 15 läuft. Das Hochzählen muß man dann zwar gesondert implementieren, dafür entfällt jedoch das umfangreiche Shiften nach jedem Schritt. Bin mit jetzt aber gerade selber nicht sicher, welche Methode nun die elegantere ist ...Quoted
Original von L A C K Y
Eine andere Möglcihkeit wäre es auch mit dem bit-operator "&" zu arbeiten.
Quoted
Original von Joachim
Weitere Möglichkeit: Das ganze Herumgeshifte vermeiden und gleich mit einem "Hexzähler" arbeiten. Also statt einer int-Zählvariablen ein Array von int (oder byte) nehmen, in dem jede Stelle von 0 bis 15 läuft. Das Hochzählen muß man dann zwar gesondert implementieren, dafür entfällt jedoch das umfangreiche Shiften nach jedem Schritt. Bin mit jetzt aber gerade selber nicht sicher, welche Methode nun die elegantere ist ...Quoted
Original von L A C K Y
Eine andere Möglcihkeit wäre es auch mit dem bit-operator "&" zu arbeiten.
Quoted
Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Hast Du.Quoted
Original von Kaos
Quoted
Original von Joachim
Weitere Möglichkeit: Das ganze Herumgeshifte vermeiden und gleich mit einem "Hexzähler" arbeiten. Also statt einer int-Zählvariablen ein Array von int (oder byte) nehmen, in dem jede Stelle von 0 bis 15 läuft.
Das war auch meine erste Idee, funktioniert aber nicht, da nicht alle 16 Zahlen ein "A" auftaucht. Siehe: 161,162,163 etc. Oder hab ich dich falsch verstanden?
This post has been edited 1 times, last edit by "Joachim" (May 1st 2007, 2:58pm)
Trainee
Date of registration: Oct 2nd 2006
Location: NRW -> Bad Oeynhausen
Occupation: B.Sc. Informatik, 8.Semester