Code Stück



  • volkard schrieb:

    Echt? Was ist denn

    6.022140857e23>>5
    

    ?

    Kann mal einer dazu was sagen. Wieso sollte das keinen Sinn ergeben ?

    0.000060221408e23 ??? Stimmt das nicht ??


  • Mod

    @Peter_Mueller: Die Bitshift-Operatoren sind genau das, was der Name aussagt: Operatoren, um Bits zu shiften. Bei Ganzzahlen kannst Du damit durch 2^n teilen oder mit 2^n multiplizieren, weil die interne Darstellung der Ganzzahlen dazu fuehrt, dass das in diesem Fall aequivalent ist. Bei Fliesskommazahlen gibt es diese Aequivalenz aber nicht. Recherchier mal, wie Fliesskommazahlen intern repraesentiert werden und dann ueberleg Dir, was Du Dir in diesem Fall von einem Bitshift-Operator versprichst.

    Generell kann man das Multiplizieren/Dividieren mit 2^n mittels Bitshoftoperatoren auch schon als eine Art von Missbrauch des Operators ansehen. Man macht das, weil man meint, besonders schlau zu sein, insbesondere schlauer als der Optimierer des Compilers. Eigentlich sollte man den Operator aber eher nur dann nutzen, wenn es einem nicht um den Wert der Ganzzahl im Gesamten geht, sondern um die einzelnen Bits, die diese Zahl ausmachen. Diese Operatoren sind nuetzlich, wenn man in einer Ganzzahl eigentlich eine Folge von boolschen Variablen speichern moechte und diese manipulieren moechte.


Anmelden zum Antworten