操作符 Shr (右移)
 
将数字表达式的位向右移动

语法
用法

result = lhs Shr rhs

参数

lhs
左边的表达式。
rhs
右侧移位表达式。

返回值

返回rhs 正在向右移动rhs 次的结果。

说明

操作符 Shr(向右Shift)将左侧表达式(lhs )中的所有位右移右侧表达式(rhs )指定的次数。在数值上,结果与“Int(lhs /2 ^ rhs )”相同。例如,“&b0101 Shr 1”返回二进制数&b010,“5 Shr 1”返回2.

如果左侧表达式为负号,则在移位后左侧新创建的位复制符号位。例如,“-5 Shr 2”返回-2.

任何操作数都不以任何方式进行修改。

对于rhs 小于零或大于或等于结果数据类型中的位数的值,此操作的结果未定义。

对于用户定义的类型,此运算符可能会重载。

例子

'减半数
For i As Integer = 0 To 10
    
    Print 1000 Shr i, Bin(1000 Shr i, 16)
    
Next i

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

方言差异

  • -lang qb 方言中不可用,除非使用别名__Shr引用。

与QB差别

  • 新的FreeBASIC

参考