Links/Rechtsverschiebung oder was stellt das dar?

Hbx8x

Aktives Mitglied
Hi, ich möchte gerne die Musterlösung nachvollziehen. Nach meinen Recherchen wird ein logischer rechts-bzw linksshift verwendet der eine Verschiebung implizirt. Leider finde ich im Internet nur zusammenhänge zu binären Werten, deshalb kann ich absolut nicht nachvollziehen wie man hier vorgeht. Jemand eine Idee vlt?

lg
 

Anhänge

  • frage.png
    frage.png
    15,4 KB · Aufrufe: 37
K

kneitzel

Gast
Moin,
ich überlege gerade, wo Dein Verständnisproblem liegt...

Alle Werte werden im Computer binär abgelegt, denn Computer kennen nur 0 und 1. Ist aber gar kein Problem, denn alle Zählen lassen sich ja Mathematisch in jedem System darstellen. Wir Menschen nutzen in der Regel das Dezimal-System und Computer halt das Binäre System.
Da sich Zählen so nur schlecht darstellen lassen, wurden die Zahlen in Blöcke gefasst:
So werden 4 Stellen (auch als Bits bezeichnet) zusammen gefasst. Mit 4 Stellen lassen sich im Binären System die Zahlen von 0 (0000) bis 15 (1111) Darstellen.
Diese 4 Bits möchte man mit einer Stelle darstellen, also braucht man ein System, welches 16 Werte pro Stelle kennt: Hexadezimal System. Das kennt die Ziffern 0-9 und A-F.

Nun wurden zwei 4er Blocks zusammen gefasst und als Byte bezeichnet. Hexadezimal sind das also 2 Stellen, so dass ein Byte von 0x00 - 0xFF geht. (Wenn wir Zahlen im Hexadezimal System schreiben, dann setzen wir ein 0x davor, damit ein Leser das erkennen kann!)

Ein int in Java besteht nun aus 4 Bytes, so dass sich die Werte 0x00000000 - 0xFFFFFFFF. Dabei bekommt Abe das erste bit eine besondere Funktion: das Vorzeichen.

Kommen wir nun auf die Shift Operatoren zu sprechen:
Dies nimmt sich den Wert immer als binäre Zahl (Computer halt, der kennt nur 1 und 0) und hier kannst Du Dir nun ein Förderband mit Fächern vorstellen. Und zwar genau so viele Fächer wie Werte. Nun können wir das Förderband bewegen. Wenn wir das Förderband um eine Stelle nach rechts bewegen, dann fällt das, was in dem ersten Fach war, raus und ist weg. Links haben wir aber dann ein leeres Fach. (>>1 Operation).
Nach Links genau das gleiche, nur eben, dass es nach links geht...

Das nutzen wir jetzt einmal für das Verständnis der Aufgabe:
13 (ich betrachte nur die ersten 4 Bits, wobei die Bits die Wertigkeiten haben: 8,4,2,1 und 13 = 8+4+1:
1101 .... Nun schieben wir das jeweils um eine Position nach rechts:
1. schieben: die erste 1 fällt runter: 0110 (6)
2. schieben. Die 0 fällt runter: 0011 (3)
3. schieben: Die 1 fällt runter: 0001 (1)

Wenn wir uns so ein Schieben ansehen, dann fällt uns auf, dass die Wertigkeit einer 1 sich immer halbiert. Die 1 mit der Wertigkeit 8 hat danach noch noch die Wertigkeit 4. Daher entspricht so ein Shift einer Division durch 2.

Das Ganze in die andre Richtung muss ich nun nicht mehr so ausführlich erläutern, oder?

Wichtig: Du hast zu >> und << nur Erläuterungen zu der Operation auf den Werten gefunden, denn das ist es nun einmal. Es ist keine logische Operation, die nur mit Wahr und Falsch arbeitet.
 

mihe7

Top Contributor
Und das ganze nochmal schön untereinander geschrieben ergibt dann:
Code:
bin    dez  Operation  
1101 | 13 | >> (entspricht ganzzahliger Division durch 2)
0110 |  6 | >> (entspricht ganzzahliger Division durch 2)
0011 |  3 | >> (entspricht ganzzahliger Division durch 2)
0001 |  1 | 

D.h. 13 >> 3 = [[[13 : 2] : 2] : 2] 
             = [13 : 2 : 2 : 2]
             = [13 : 2^3] 
             = [13 : 8] = 1
(mit [a] = kleinste ganze Zahl größer oder gleich a)

0001 |  1 | << (entspricht ganzzahliger Multiplikation mit 2)
0010 |  2 | << (entspricht ganzzahliger Multiplikation mit 2)
0100 |  4 | << (entspricht ganzzahliger Multiplikation mit 2)
1000 |  8 |

D.h. 1 << 3 = 1 * 2 * 2 * 2 = 1 * 2^3 = 8
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
S Animation/links-rechts Java Basics - Anfänger-Themen 9
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
R HTTP-Links in Java Class finden Java Basics - Anfänger-Themen 3
M Erste Schritte Links öffnen Java Basics - Anfänger-Themen 6
C eine diagonale von rechts nach links im 2d-array Java Basics - Anfänger-Themen 1
U Best Practice Nicht-permanente Links auf Dateien Java Basics - Anfänger-Themen 5
M suche/brauche Links über rein GUI Beispielprogramme Java Basics - Anfänger-Themen 4
B Links & Zusatzinformationen aus PDFs zusammentragen Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
S Links ausführen und Ausführzeiten festlegen Java Basics - Anfänger-Themen 4
0din Applet und Links Java Basics - Anfänger-Themen 4
S HEX oder String rotieren lassen (rechts raus, links rein) Java Basics - Anfänger-Themen 3
M Links anpassen Java Basics - Anfänger-Themen 2
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
B DL Links aus Textdatei in BB Code einbetten Java Basics - Anfänger-Themen 5
H Icon links oben im JFrame deaktivieren? Java Basics - Anfänger-Themen 2
S jpanel links oben ausrichten Java Basics - Anfänger-Themen 7
M quelltext html-seite speichern + links speichern Java Basics - Anfänger-Themen 2
K Grafik beim JFrame oben Links ändern nur wie ? Java Basics - Anfänger-Themen 8
J Links zum jdk 6 Java Basics - Anfänger-Themen 25
M Strings links, rechts und centriert ausrichten Java Basics - Anfänger-Themen 12
B Links verfolgen -- Bibliothek nicht gefunden? Java Basics - Anfänger-Themen 6
Z Applet text der sich von links nsch rechts bewegt Java Basics - Anfänger-Themen 3
G JPanel (Abstand von links) Java Basics - Anfänger-Themen 1
M Formulare ausfüllen / Links aktivieren [erledigt] Java Basics - Anfänger-Themen 3
A Links aus Firefox an Java Programm weiterleiten Java Basics - Anfänger-Themen 6
C Links fuer Tuts und so. Java Basics - Anfänger-Themen 2
D HTML Code einlesen und nach Links parsen Java Basics - Anfänger-Themen 10
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
Gossi Eclipse stellt sich beim Export quer... Java Basics - Anfänger-Themen 4
X cmd stellt falsch/zu weinig dar Java Basics - Anfänger-Themen 4
S Eingabeaufforderung stellt Umlaute nicht dar Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben