Skip to content

运算符 Shl(左移)


将数值表达式的位向左移动

语法

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 i

end 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
  • 数学函数

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系