hotti: Bitoperatoren und Unsigned Integer

Beitrag lesen

Hi Jürgen,

das Vorzeichen einer Integerzahl ist reine Interpretation. Binär sind +255 und -128 identisch (FF). Wenn du nach Bit-Operationen ein Vorzeichenproblem hast, weil Javascript keine Datentypen kennt und die Daten "nach bestem Wissen und Gewissen" interpretiert, musst du das selbst geradebiegen.

Ja, Du hast Recht ;)

Meine Lösung ist nun: Anwenden eines Typed Arrays und DataView. Entsprechende Methoden erzwingen Unsigned.

  
function masklen_to_num(masklen){  
    if(masklen == 0){  
        return 0;  
    }  
    else{  
        var buffer = new ArrayBuffer(4);  
        var dv = new DataView(buffer);  
        dv.setUint32(0, (0xffffFFFF <<(32 - masklen)));  
        var num = dv.getUint32(0);  
        return num;  
    }  
}  

HTML5 rockt, ich bin begeistert!!!