micoud
04-09-2012, 19:15
Stavo convertendo del codice scritto in delphi in php (che nn conosco) ma ho un problema...questa è la funzione in php
function get_unit($hex)
{
$V0=sprintf("%08X",(ord($hex[0]) & 0x000000FF));
$V1=sprintf("%08X",(ord($hex[1]) << 0x08) & 0x0000FF00);
$V2=sprintf("%08X",(ord($hex[2]) << 0x10) & 0x00FF0000);
$V3=sprintf("%08X",(ord($hex[3]) << 0x18) & 0xFF000000);
return ((bchexdec($V0)) |(bchexdec($V1))|(bchexdec($V2))|(bchexdec($V3)));
}
function bchexdec($hex) {
if(strlen($hex) == 1) {
return hexdec($hex);
} else {
$remain = substr($hex, 0, -1);
$last = substr($hex, -1);
return bcadd(bcmul(16, bchexdec($remain)), hexdec($last));
}
}
ed ottengo giustamente
v0=93
v1=31232
v2=2818048
v3=4143972352
quello che nn riesco ad ottenere è l'or tra i quattro interi...dovrebbe uscire 4146821725 mentre ottengo ?;7;;7:352 :muro:
function get_unit($hex)
{
$V0=sprintf("%08X",(ord($hex[0]) & 0x000000FF));
$V1=sprintf("%08X",(ord($hex[1]) << 0x08) & 0x0000FF00);
$V2=sprintf("%08X",(ord($hex[2]) << 0x10) & 0x00FF0000);
$V3=sprintf("%08X",(ord($hex[3]) << 0x18) & 0xFF000000);
return ((bchexdec($V0)) |(bchexdec($V1))|(bchexdec($V2))|(bchexdec($V3)));
}
function bchexdec($hex) {
if(strlen($hex) == 1) {
return hexdec($hex);
} else {
$remain = substr($hex, 0, -1);
$last = substr($hex, -1);
return bcadd(bcmul(16, bchexdec($remain)), hexdec($last));
}
}
ed ottengo giustamente
v0=93
v1=31232
v2=2818048
v3=4143972352
quello che nn riesco ad ottenere è l'or tra i quattro interi...dovrebbe uscire 4146821725 mentre ottengo ?;7;;7:352 :muro: