目次→
演算子→
算術演算子→
Operator Shl (Shift left)←オリジナル・サイト
数値の式のビットを左に移動させます。
構文:
用法:
result = lhs Shl rhs
パラメタ:
lhs
左側の式。
rhs
右側の移動させる数の式。
戻り値:
lhs を、rhs の数だけ、左に移動した結果を、返します。
記述:
演算子 Shl (左シフト) は、左側の式 (
lhs) の全てのビットを、右側の式 (
rhs) で指定した数だけ、左にシフトします。
これは、一つシフトする毎に、
lhs に、2 を掛けるという、効果があります。
つまり、結果は、 "
Cint( lhs * 2 ^ rhs )" と同じです。
例えば、"
&b0101 Shl 1" は、2進数の
&b01010 を返します。そして、"
5 Shl 1" は、10 を返します。
演算対象のどちらも、何らかの方法で変更されません。
結果が大きすぎて、結果のデータ型に入らない場合、左端のビットは廃棄されます("shifted out")。
この操作の結果、0 未満の rhs の値、あるいは結果のデータ型のビットの数以上の rhs の値は、不確定です。
この演算子を、ユーザ定義型のために、多重定義することができます。
例:
'数を倍にします
For i As Integer = 0 To 10
Print 5 Shl i, Bin
(5 Shl i, 16)
Next i
Sleep
出力:
5 0000000000000101
10 0000000000001010
20 0000000000010100
40 0000000000101000
80 0000000001010000
160 0000000010100000
320 0000000101000000
640 0000001010000000
1280 0000010100000000
2560 0000101000000000
5120 0001010000000000
方言差:
-
別名 __Shl と共に参照をつけないと、-lang qb 方言で利用できません。
QBからの違い:
参照: