运算符 Shl(左移)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOpShiftLeft
- 最后更新: 2021-11-24
将数值表达式的位向左移动
语法
vb
declare operator Shl ( byref lhs as integer, byref rhs as integer ) as integer
declare operator Shl ( byref lhs as uinteger, byref rhs as uinteger ) as uinteger
declare operator Shl ( byref lhs as longint, byref rhs as longint ) as longint
declare operator Shl ( byref lhs as ulongint, byref rhs as ulongint ) as ulongint用法
` result = lhs Shl rhs
`
参数
lhs
左侧表达式。
rhs
右侧移位表达式。
返回值
返回 lhs 向左移动 rhs 次的结果。
描述
Operator Shl(左移)将左侧表达式(lhs)中的所有位向左移动由右侧表达式(rhs)指定的次数。数值上,结果与 "Cint( lhs * 2 ^ rhs )" 相同。例如,"&b0101 Shl 1" 返回二进制数 &b01010,"5 Shl 1" 返回 10。
两个操作数均不以任何方式被修改。
如果结果太大而无法放入结果的数据类型中,最左边的位将被丢弃("移出")。
当 rhs 的值小于零,或大于等于结果数据类型的位数时,此操作的结果是未定义的。
该运算符可为用户自定义类型重载。
示例
start GeSHi
vb
'Double a number
For i As Integer = 0 To 10
Print 5 Shl i, Bin(5 Shl i, 16)
Next iend GeSHi
输出:
5 0000000000000101
10 0000000000001010
20 0000000000010100
40 0000000000101000
80 0000000001010000
160 0000000010100000
320 0000000101000000
640 0000001010000000
1280 0000010100000000
2560 0000101000000000
5120 0001010000000000方言差异
- 在 -lang qb 方言中不可用,除非通过别名
__Shl引用。
与 QB 的差异
- FreeBASIC 新增
参见
Operator Shl= (Shift Left and Assign)Operator Shr (Shift right)Bin- 数学函数
返回 目录