0埋め右シフト演算子「>>>」

0埋め右シフト演算子「>>>」とは、指定したビット数分右へシフトし、左を0で埋める演算子のこと。

左のオペランド(演算子引数)の値を2進数に変換し、右のオペランド(演算子引数)の数値分右にシフトし、左を0で埋める。右に溢れたビットは破棄する。符号は維持しない。結果は、常に正数になる。最後に、演算結果を10進数に戻す。

構文

結果 = 値1 >>> 値2;
結果 = 式1 >>> 式2;

サンプル(正数の場合)

10進数
2進数

解説

「5」を、2進数で表すと「101」。右へ「1」ビット分移動すると、「10」(10進数で表すと「2」)になる。

ソースコード

<style type="text/css">
<!--
.sampleItem div {
    float: left;
    width: 60px;
    text-align: right;
}
-->
</style>
<div class="sampleItem">
    <div>10進数</div>
    <div>2進数</div>
</div>
<div style="clear: left;"></div>
<script type="text/javascript">
var sampleA = 5;
var sampleB = 1;
var sampleC = sampleA >>> sampleB;
document . write( "<div class=\"sampleItem\">" );
document . write( "<div>" + sampleA + "</div>" );
document . write( "<div>" + sampleA . toString(2) + "</div>" );
document . write( "</div>" );
document . write( "<div style=\"clear: left;\"></div>" );
document . write( "<div class=\"sampleItem\">" );
document . write( "<div>" + sampleC + "</div>" );
document . write( "<div>" + sampleC . toString(2) + "</div>" );
document . write( "</div>" );
document . write( "<div style=\"clear: left;\"></div>" );
</script>

サンプル(負数の場合)

10進数
2進数

ソースコード

<style type="text/css">
<!--
.sampleItemB div {
    float: left;
}
.sampleItemB-1 {
    width: 150px;
    text-align: right;
}
.sampleItemB-2 {
    width: 400px;
    text-align: right;
}
-->
</style>
<div class="sampleItemB">
    <div class="sampleItemB-1">10進数</div>
    <div class="sampleItemB-2">2進数</div>
</div>
<div style="clear: left;"></div>
<script type="text/javascript">
var sampleA = -5;
var sampleB = 1;
var sampleC = sampleA >>> sampleB;
document . write( "<div class=\"sampleItemB\">" );
document . write( "<div class=\"sampleItemB-1\">" + sampleA + "</div>" );
document . write( "<div class=\"sampleItemB-2\">" + sampleA . toString(2) + "</div>" );
document . write( "</div>" );
document . write( "<div style=\"clear: left;\"></div>" );
document . write( "<div class=\"sampleItemB\">" );
document . write( "<div class=\"sampleItemB-1\">" + sampleC + "</div>" );
document . write( "<div class=\"sampleItemB-2\">" + sampleC . toString(2) + "</div>" );
document . write( "</div>" );
document . write( "<div style=\"clear: left;\"></div>" );
</script>

0埋め右シフト演算子と代入演算子の複合

0埋め右シフト演算子は、代入演算子と合成することができる。

変数 >>>=;

変数 = 変数 >>>;と同じ結果が得られる。

0埋め右シフト演算子と代入演算子の複合代入演算子である0埋め右シフト代入演算子についてはこちら

スポンサード リンク

カテゴリー: JavaScript, リファレンス, 演算子 パーマリンク