Wozu ist das Bitshiften beim Programmieren (Java) gut?
Hallo,
meine frage ist vielleicht etwas dumm ab ich habe mich etwas mit programmieren befasst und ich verstehe immer noch nicht was Bitshiften ist. Ich habe verstanden, so wie der name schon sagt, das man so die bits nach links oder rechts verschieben kann doch leider nicht wozu man das braucht....
Hat jemand vielleicht Beispiele wo man das braucht oder kann selber erklären wozu das gut ist...?
Ich habe auch gelesen das man es mit der maskiereung verbinden kann doch da bin ich mir leider auch nicht sicher.
Vielen Dank
2 Antworten
Nehmen wir an du hast ein Gerät welches dir nacheinander 4 Signale sendet .
Diese werden in 4 digitale Zustände gewandelt . 0 für schwaches Signal , 1 für starkes Signal.
Dein Rechner hat als kleinste Einheit 1 Byte . Das sind 8 Zustände .
Jetzt wäre es doch praktisch wenn du einfach 2x4 Zustände darin speichern könntest .
Um jetzt nicht 4 bitmasken zu nutzen bzw 8 um alle Infos des Bytes auszulesen bzw zu schreiben . Könntest du einfach das letzte Bit mit einer schleife prüfen und schiebst nach jeder Prüfung die Bits ein weiter.
Genauso kannst mit nur einer bitmaske auch die Zustände in das Byte schieben.
Wenn du nun die Daten weitergibst sind sie ohne Bits zu verschwenden byteweise übertragbar .
Bitshift nach links ist wie eine Multiplikation mit 2. Bitshift nach rechts ist Division durch 2.
BSP: Dual = 0001 => Dez = 1
Bitshift nach links Dual = 0010 => Dez = 2
Bitshift nach links Dual = 0100 => Dez = 4
Bitshift nach links Dual = 1000 => Dez = 8
usw.
Man verwendet das aber auch für Bitmasken.