JavaScript 32 ビット整数の符号なし操作 example_javascript スキル

WBOY
リリース: 2016-05-16 17:10:29
オリジナル
1323 人が閲覧しました

JavaScript では、すべての整数変数はデフォルトで符号付き整数になります。これは何を意味しますか?

符号付き整数は、31 ビットを使用して整数の値を表し、ビット 32 を使用して整数の符号を表します。0 は正の数を表し、1 は負の数を表します。
値の範囲は -2^31 - 2^31-1、つまり -2147483648 ~ 2147483647 です。

JavaScript がビット演算を実行する場合、32 ビットの符号付き整数型が使用されます。つまり、変換の結果も 32 ビットの符号付き整数型になります。 シフトを実行すると予期しない結果が発生する場合があります。以下に C 言語と JS の比較を示します。

C 言語

コードをコピー コードは次のとおりです:

unsigned int a = 3774191835u;
unsigned int b = a >
/* b == 943547958 */


ご覧のとおり、JavaScript はビット演算を実行するときに符号付き整数を使用するため、異なる結果が得られます。 どうやって解決すればいいでしょうか?

JavaScript の符号付き数値を符号なし数値に変換できます。 >>>0 シフト操作を実行するだけです。

>> を使用しないことをお勧めします。左端のビットは符号ビットとして解析され、数値がオーバーフローすると解析されるため、>>> を使用することをお勧めします。負の数として。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!