Axel Richter: Bitweise Operatoren und Integer-Werte

Beitrag lesen

Hallo,

javascript:alert(6 << 4)
Ob's Bullshit ist oder nicht, bewerte doch bitte zunächst mal selbst.
Das beantwortet meine Frage nicht, denn das Resultat der obigen Berechnung bleibt gleich, egal wie die Zahl dual dargestellt wird.

JavaScript kennt nur einen numerischen Datentyp, nämlich Number. Variablen, denen ein numerischer Wert zugewiesen wird, haben danach automatisch diesen Typ. Es gibt also keinen Unterschied zwischen Integer- und Float-Variablen. Je nach Operation wird dann entschieden, welcher Wert (Integer oder Float) für die Operation verwendet wird. Bei Bitoperationen ist das der Ganzzahlanteil.

Beispiel:

  
var a = 4.9;  
var b = 1.9;  
alert(typeof(a) + ", " + typeof(b));  
  
var c = (a << b);  
alert(typeof(c)); //Number  
alert(c); // (100 << 1) = 1000 = 8  
alert(c.toString(2));  
  
var d = (a | b);  
alert(typeof(d)); //Number  
alert(d); // (100 | 001) = 101 = 5  
alert(d.toString(2));  
  
//So kann man es natürlich auch machen, um ganz sicher zu gehen, dass man Dualzahlen verrechnet.  
a = parseInt("0100", 2);  
alert(typeof(a));  
alert(a);  

viele Grüße

Axel