FreeBASIC マニュアルのトップに戻る

FreeBASIC OpShiftRight

目次演算子算術演算子Operator Shr (Shift right)←オリジナル・サイト

演算子 Shr (右シフト) 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい


数値の式のビットを、右に移動させます。

構文:
declare 演算子 Shr ( byref lhs as integer , byref rhs as integer ) as integer
declare 演算子 Shr ( byref lhs as uinteger , byref rhs as uinteger ) as uinteger
declare 演算子 Shr ( byref lhs as longint, byref rhs as longint ) as longint
declare 演算子 Shr ( byref lhs as ulongint, byref rhs as ulongint ) as ulongint

用法:
result = lhs Shr rhs

パラメタ:
lhs
左側の式。
rhs
右側の、移動させる数の式。

戻り値:
lhs を、rhs の数だけ、右に移動した結果を返します。

記述:
演算子 Shr (右シフト) は、左側の式 (lhs) の全てのビットを、右側の式 (rhs) で指定された数だけ、右方向に、移動させます。
これには、一つシフトする毎に、lhs を 2 で割るという効果があります。
つまり、結果は、 "Int(lhs / 2 ^ rhs)"と同じです。
例えば、"&b0101 Shr 1" は、2進数の &b010 を返します。そして、"5 Shr 1" は、2 を返します。

左側の式が符号付きで負数なら、符号ビットは、シフトの後に、新たに作成されたビットの左に、コピーされます。
例えば、"-5 Shr 2" は、-2 を返します。

演算対象のどちらも、何らかの方法で変更されません。

この操作の結果は、0未満の rhs の値、あるいは結果のデータ型のビットの数以上の rhs の値には、不確定です。

この演算子を、ユーザ定義型のために、多重定義することができます。

例:
'数を半分にします
For i As Integer = 0 To 10

    Print 1000 Shr i, Bin (1000 Shr i, 16)

Next i
Sleep


出力:
 1000         0000001111101000
 500          0000000111110100
 250          0000000011111010
 125          0000000001111101
 62           0000000000111110
 31           0000000000011111
 15           0000000000001111
 7            0000000000000111
 3            0000000000000011
 1            0000000000000001
 0            0000000000000000


方言差:
QBからの違い:
参照:
算術演算子 に戻る
演算子 に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2021-11-24 16:15:49
日本語翻訳:WATANABE Makoto、原文著作者:LaananFisher

ホームページのトップに戻る

表示-非営利-継承