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!!!