hotti: Bitoperatoren und Unsigned Integer

Beitrag lesen

hi,

Aber wie kommst du überhaupt auf die Frage? Worin besteht das konkrete Problem?

alert( inet_aton('192.168.2.1') |~ inet_aton('255.255.255.0') );

ergibt einen negativen Integer. Das Ergebnis ist in diesem Fall richtig.
Anders jedoch hier:

  
// maskenlänge zu einer uint 32 bit Zahl umrechnen  
// masklen 0..32 !!!  
int masklen_to_num(int masklen){  
    if(masklen == 0) return 0;  
    else return(0xffffFFFF <<(32 - masklen));  
}  

Diese c-Funktion, den shift-Op anwendend, funktioniert nicht mit JavaScript, weil infolge shift die Zahlen negativ werden.
Möglicherweise gibt es für die modernen Browser ein Pragma oder die Möglichkeit einen Cast-Operator anzuwenden?

Horst (geht erneut auf die Suche)