Was bringen Bit-Operatoren?

JStickman

Mitglied
Ich habe das mit den Bit-Operatoren nicht verstanden und hätte gerne eine Erklärung ,wie man sie anwendet.

Danke für alle Beiträge.
 

energy47

Mitglied
was sie bringen?? naja sie sind da und man kann sie anwenden ;)
nein also im ernst, bit operationen sind manchmal performanter
zb:

Java:
int a = 10;

a = a / 2;  //normale division
s = a >>1  // selbe mit bitshift allerdings ist das schneller als der normale / operator

man kann so die performance eigener software verbessern, andererseits wenn du mal ne aufgabe hast die vielleicht rein durch boolsche algebra logic super zu verstehen und zu lösen ist, warum dann nicht auf die weise dran gehen..
 

energy47

Mitglied
@xerberuz

das würde ich so pauschal jetzt nicht sagen.. der macht auch nicht alles optimal und gerade bei solchen kleinigkeiten macht man denke ich nicht viel falsch.
ich schaue mir auch hin und wieder mal den code in java bibliotheken an, da sieht man auch wie die entwickler verfahren und das solche optimierungen genutzt werden. falsch ist das nicht.
 

xerberuz

Bekanntes Mitglied
@xerberuz

das würde ich so pauschal jetzt nicht sagen.. der macht auch nicht alles optimal und gerade bei solchen kleinigkeiten macht man denke ich nicht viel falsch.
ich schaue mir auch hin und wieder mal den code in java bibliotheken an, da sieht man auch wie die entwickler verfahren und das solche optimierungen genutzt werden. falsch ist das nicht.

Gerade bei solchen Kleinigkeiten ist der Compiler besser. Wenn es komplexer wird ist man gut beraten den Algorithmus selbst zu optimieren. Aber teilen duch bitschubserei zu ersetzen ist sinnlos.
 

energy47

Mitglied
wenn ich mich richtig errinere hat mein prof gerade zu dem /2 und >>1 bei binarysearch gesagt, dass die bitshift version schneller ist.. das habe ich so auch in einigen codes gesehen. in der hinsicht halte ich das somit nicht für sinnlos..

auch in einem buch über algorithmen habe ich gelesen dass die bitshift operation schneller ist als division und multiplikation.. mann sollte nur drauf achten dass es nicht ausartet denn da kann es wieder sein dass die normale multiplikaiton doch wieder flotter wär als bitshift..
 

xerberuz

Bekanntes Mitglied
wenn ich mich richtig errinere hat mein prof gerade zu dem /2 und >>1 bei binarysearch gesagt, dass die bitshift version schneller ist.. das habe ich so auch in einigen codes gesehen. in der hinsicht halte ich das somit nicht für sinnlos..

auch in einem buch über algorithmen habe ich gelesen dass die bitshift operation schneller ist als division und multiplikation.. mann sollte nur drauf achten dass es nicht ausartet denn da kann es wieder sein dass die normale multiplikaiton doch wieder flotter wär als bitshift..

Das mag früher mal so gewesen sein und dann auch hauptsächlich in maschinenahen Sprachen. Der Compiler macht manchmal tatsächlich bit operationen aus divisionen (deshalb ist es unnötig es selbst zu tun). Mit heutigen Prozessoren ist das allerdings meistens unnötig, da diese mathematische Operationen mittlerweile auch in einem Zyklus erledigen.
 

ice-breaker

Top Contributor
Wie du am Beispiel vom müden Joe gesehen haben müsstest können Divisionen durch eine 2er Potenz nicht einfach durch einen Bitshift ersetzen werden und werden daher auch per Default nicht gemacht. Der Compiler müsste nämlich annehmen können, dass nur positive Werte übergeben werden, bei negativen Zahlen (Zweierkomplement) geht nämlich der Bitshift nicht.

Und das ein Bitshift die gleiche Performance wie eine Addition haben soll, glaube ich dir solange nicht, bis du Beweise aufführst: alleine die Logik für eine Addition ist viel komplexer als die eines Bitshifts.
Ein Bitshift kann komplett parallel ausgeführt werden für eine Addition sind aber noch einige Halbaddierer/Volladdieren in Reihe geschaltet nötig.
 

lama

Mitglied
Les- und Wartbarkeit von Code ist wichtiger als ein kleiner Performancegewinn. Zumindest in alltäglichen Fällen sollte man daher lieber klar lesbaren Code schreiben, anstatt unnötig zu optimieren.

Geht es um einen Flaschenhals, ist das natürlich etwas Anderes.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
V wie kann ich eine laufende Klasse zum "stopen" bringen und zur main zurückkehren? Java Basics - Anfänger-Themen 11
S Simples JNI zum laufen bringen Java Basics - Anfänger-Themen 5
H Erste Schritte Einfaches Programm und GUI zusammen bringen Java Basics - Anfänger-Themen 3
G Packages -> was bringen sie? Java Basics - Anfänger-Themen 4
G Erste Schritte von Eclipse zur Anwendung: Programme auf anderen Rechnern zum Laufen bringen Java Basics - Anfänger-Themen 4
V .jar Programm auf Webseite bringen Java Basics - Anfänger-Themen 7
W JButton in gleiche Größe bringen Java Basics - Anfänger-Themen 4
A Nedit für Mac zum laufen bringen Java Basics - Anfänger-Themen 2
H Buchstabe in Programm bringen Java Basics - Anfänger-Themen 6
G Poi 3.5-Final zum laufen bringen Java Basics - Anfänger-Themen 2
M Online-Java-Games offline spielen? / Jar-Files zum laufen bringen? Java Basics - Anfänger-Themen 6
D In eclipse Methode von Schnittstelle zum Laufen bringen? Java Basics - Anfänger-Themen 14
brainray Einfachen RMI Server bei einem Provider zum Laufen bringen Java Basics - Anfänger-Themen 3
A Static in Funktionen bringen Java Basics - Anfänger-Themen 7
S if-Abfragen bringen mich zum VERZWEIFELN! Java Basics - Anfänger-Themen 12
D Java auf USB-Stick einrichten um FreeMind zum laufen zu bringen Java Basics - Anfänger-Themen 4
T String beschneiden, Tokenizer und Substring bringen nix Java Basics - Anfänger-Themen 5
B JOptionPane in vordergrund bringen Java Basics - Anfänger-Themen 2
P Inhalte aus Methoden in String Arrays bringen Java Basics - Anfänger-Themen 4
B Text von Knuddels Chatfenster in mein Programm bringen? Java Basics - Anfänger-Themen 5
C Farbe ins Spiel bringen Java Basics - Anfänger-Themen 2
G Splitter in Maske bringen Java Basics - Anfänger-Themen 6
1 Ergebnis in ein Jlabel bringen Java Basics - Anfänger-Themen 3
L IOTools zum Laufen bringen Java Basics - Anfänger-Themen 2
B RetroGuard zum Laufen bringen Java Basics - Anfänger-Themen 11
A String von einer Klasse in die ander zu bringen Java Basics - Anfänger-Themen 10
B Spielereien mit bit wise Operatoren und langen Binärzahlen Java Basics - Anfänger-Themen 3
Kleinerals2 NaN Operatoren Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
D Erste Schritte Operatoren zur Manipulation von Bits "~" Java Basics - Anfänger-Themen 5
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
G operatoren Java Basics - Anfänger-Themen 3
beatles Operatoren Operatoren - Berechnung Java Basics - Anfänger-Themen 40
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
X Shift-Operatoren Java Basics - Anfänger-Themen 1
P Bitweise Operatoren Java Basics - Anfänger-Themen 2
Phillip Bitweise Operatoren Java Basics - Anfänger-Themen 11
C Operatoren Java Basics - Anfänger-Themen 6
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
M Einfache und Doppelte Operatoren Java Basics - Anfänger-Themen 3
S Operatoren & Terminierung Java Basics - Anfänger-Themen 1
A Bitweise Operatoren Java Basics - Anfänger-Themen 1
O Priorität bei Operatoren Java Basics - Anfänger-Themen 4
N Potenzierung durch einfache Operatoren Java Basics - Anfänger-Themen 13
B Geschwindigkeitsabhängigkeit von Anz. d. Operatoren pro Zeile Java Basics - Anfänger-Themen 12
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
S Arithmetische Operatoren Java Basics - Anfänger-Themen 7
L Erste Schritte Fragen zu Arrays, Inkrement Operatoren, Dekrement Operatoren ? Java Basics - Anfänger-Themen 9
lulas[]args Fehler - Logische Operatoren Java Basics - Anfänger-Themen 9
H Nur Zahlen, Klammern und Operatoren Java Basics - Anfänger-Themen 3
D Frage zu Bit Operatoren in der Programmierung Java Basics - Anfänger-Themen 9
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
L [Logische Operatoren] referenzierbar? Java Basics - Anfänger-Themen 3
W Was tun die Operatoren ? und : (Bedingungen) Java Basics - Anfänger-Themen 15
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
G Logische und Bitweise Operatoren Java Basics - Anfänger-Themen 2
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
E Logische Operatoren && und & Java Basics - Anfänger-Themen 14
? Operatoren && || Java Basics - Anfänger-Themen 10
M Aufgabe Arithmetische Operatoren Java Basics - Anfänger-Themen 12
H While Schleife mit Operatoren Java Basics - Anfänger-Themen 14
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
M Arithmetische Operatoren Java Basics - Anfänger-Themen 40
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
M Sind ternäre Operatoren für einen guten Programmierstil wichtig ? Java Basics - Anfänger-Themen 10
E IF Anweisung mit logischen Operatoren Java Basics - Anfänger-Themen 18
J Matheaufgabe aus String mit mehreren Operatoren Java Basics - Anfänger-Themen 16
D Logische Operatoren Java Basics - Anfänger-Themen 6
D Grundlagen - Operatoren Java Basics - Anfänger-Themen 5
1 Datentypen Rückgabetyp von Java-Operatoren Java Basics - Anfänger-Themen 2
V Bitweise Operatoren in der Grafikprogrammierung Java Basics - Anfänger-Themen 2
SebSnake Operatoren für eigene Datentypen Java Basics - Anfänger-Themen 3
M logische operatoren Java Basics - Anfänger-Themen 2
C Variablen für Operatoren Java Basics - Anfänger-Themen 3
W Rangfolge von Operatoren Java Basics - Anfänger-Themen 16
N zahlen und operatoren gemischt in einem Feld Java Basics - Anfänger-Themen 9
T Logische Operatoren Java Basics - Anfänger-Themen 39
C Dynamische Operatoren! Java Basics - Anfänger-Themen 5
G Shift Operatoren Java Basics - Anfänger-Themen 4
R Bedingte Opeatoren / Verschachtelte Operatoren Java Basics - Anfänger-Themen 4
7 Operatoren in der While Schleife Java Basics - Anfänger-Themen 5
H Postfix Operatoren Java Basics - Anfänger-Themen 2
S Variablen + Operatoren "mixen" Java Basics - Anfänger-Themen 5
F Experimente mit Bit-Operatoren Java Basics - Anfänger-Themen 7
G Nutzen von bitweisen Operatoren Java Basics - Anfänger-Themen 8
J Operatoren in Java Java Basics - Anfänger-Themen 2
S Verwendung bitweiser Operatoren Java Basics - Anfänger-Themen 6
R Binäre logische Operatoren Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben