RS - Logische- und Shift-Operationen
2011-11-22 00:10
Elrassel
Ich bräuchte einmal Hilfe von einem RS-Erfahrenem Studenten.
Und zwar gibt es auf Aufgabenblatt 4 (wen es interressiert) eine Aufgabe, in der man u.A. die Funktion
int abs(int x)
als straightline-Code in Java realisieren soll. Dies soll ohne Schleifen, ohne If-Else-Abfragen und ohne ternärer Operator geschehen. Und außerdem dürfen nur folgende Operatoren benutzt werden:
! ~ & ^ | + << >> >>>
Als Idee fällt mir nur ein, am Anfang eine Art Fallunterscheidung auf die Art zu machen, dass ich mir das "linkeste" Bit ansehe (wegen Zweierkomplement) und je nach dem weiter zu verfahren:
Falls dieses Bit 0 ist: Fertig
Falls nicht, dann von rechts bis zur ersten 1 beibehalten und danach alles invertieren.
Aber wie mache ich das?
Danke schon einmal im Vorraus!
Und zwar gibt es auf Aufgabenblatt 4 (wen es interressiert) eine Aufgabe, in der man u.A. die Funktion
int abs(int x)
als straightline-Code in Java realisieren soll. Dies soll ohne Schleifen, ohne If-Else-Abfragen und ohne ternärer Operator geschehen. Und außerdem dürfen nur folgende Operatoren benutzt werden:
! ~ & ^ | + << >> >>>
Als Idee fällt mir nur ein, am Anfang eine Art Fallunterscheidung auf die Art zu machen, dass ich mir das "linkeste" Bit ansehe (wegen Zweierkomplement) und je nach dem weiter zu verfahren:
Falls dieses Bit 0 ist: Fertig
Falls nicht, dann von rechts bis zur ersten 1 beibehalten und danach alles invertieren.
Aber wie mache ich das?
Danke schon einmal im Vorraus!