echo 83661<<15;//32系统结果:-1553563648
ログイン後にコピー
echo 83661<<15;//64系统结果:2741403648
ログイン後にコピー
64 ビット システムで 32 のオーバーフロー結果を保持したいのですが、どうすればよいでしょうか。教えてください。
ディスカッションへの返信 (解決策)
$n = 83661<<15;printf("有符号:%d 无符号:%u 二进制:%032b", $n, $n, $n);
ログイン後にコピー
ログイン後にコピー
署名付き: -1553563648 署名なし: 2741403648 バイナリ: 10100011011001101000000000000000
$n = 83661<<15;printf("有符号:%d 无符号:%u 二进制:%032b", $n, $n, $n);
ログイン後にコピー
ログイン後にコピー
署名付き: -1553563648 署名なし: 2741403648 バイナリ: 10100011011001101000000000000000
Big こんにちは、実行しました64マシン上で。
リーリー
分からないの?
同じものです
分かりませんか?
これらは同じものです
すごいですね、合格できますか
$n = 83661<<15;
64 ビット マシンでこの値を取得します: -1553563648
$n = 83661<<15;printf("%d",$n);//结果还是2741403648
ログイン後にコピー
-1553563648
echo 2741403648 - 0x100000000;
ログイン後にコピー
-1553563648
ありがとう、私の問題は解決しました。
変位の問題にはあまり詳しくないので、この知識をブラッシュアップする必要があります。