Salve a tutti,
avrei una curiosità da togliere.... allora ho uno script in javascript trovato su internet che mi trasforma un ip in decimale....
il risultato è 3232235777codice:<script language="javascript"> function Ip2Long(ip){ try{ var sip = ip.split('.'); var lRet = parseFloat(sip[0] * 256 * 256 * 256) + parseFloat(sip[1] * 256 * 256) + parseFloat(sip[2] * 256) + parseFloat(sip[3]) return lRet; } catch(err){ return 0; } } alert(Ip2Long('192.168.1.1')); </script>
se converto lo stesso ip con la funzione predefinita di php (ip2long()), il risultato è diverso -1062731519.
Allora nella funzione in javascript, senza neanche sapere quello che ho fatto, ho messo un and binario nel return
return lRet & lRet;
e adesso cosi lo script funziona, mi da lo stesso risultato di php.... qualcuno di voi saprebbe spiegarmi che fa aggiungedo l'AND binario??
e poi perchè mi viene fuori un valore negativo?? se confrontiamo in binario questo valore 3232235777, dovrebbe uscire fuori sempre lo stesso.

Rispondi quotando