私はここで少し困惑しています。2 つの 32 ビット整数があります。1 つは最上位ビット用で、もう 1 つは最小です。PHPでこれら2つから10進数に相当するものを見つけるにはどうすればよいですか?
更新: @bwoebi からの提案を試し、少し修正しました。コードは次のとおりです。
$value=get64($msb, $lsb);
function get64($msb, $lsb) {
$count = count($lsb);
for($i=0; $i < $count; $i++) {
$value[$i] = bcadd(bcmul($msb[$i], bcpow(2, 32)), $lsb[$i] > 0?$lsb[$i]:bcadd(bcsub(bcpow(2, 32), $lsb[$i]), 2 << 30)); // $a most significant bits, $b least significant bits
}
}
出力:
msb=Array ( [0] => INTEGER: 0 [1] => INTEGER: 0 )
lsb=Array ( [0] => INTEGER: 143 [1] => INTEGER: 0 )
value=Array ( [0] => 2147483648 [1] => 2147483648 )
出力が正しくありません...値 [0] として 143 を期待していました。入力はありますか?