>> 和 >>= 运算符
(twinBASIC) 将数值的位向右移动指定位置数,空出的高位用零填充。复合形式**>>=**一步完成移位并赋值。
INFO
**>>和>>=**是twinBASIC扩展。经典VBA没有位移运算符;等效代码使用\\除以2的幂(x \ 2、x \ 4等)。
语法:
result = number >> count
variable >>= count
- result
- 任意数值变量。
- variable
- 任意数值变量或可写属性。
- number
- 任意数值表达式。浮点操作数在移位前截断为整数。
- count
- 给出要移位的位数的任意数值表达式。
result的数据类型匹配number的(整数)类型。右移是逻辑移位,不是算术移位:空出的高位用零填充,因此负的number变为大的正值而非保留符号。移位超过类型能容纳的位数产生0。
复合赋值
x >>= n是twinBASIC中x = x >> n的简写。**>>=**是语句,不是表达式——它不产生值。
vb
Dim Flags As Long = &H100
Flags >>= 4 ' Flags is now &H10 (16).
Flags >>= 4 ' Flags is now 1.示例
vb
Dim Value As Long
Value = 16 >> 0 ' Returns 16.
Value = 16 >> 4 ' Returns 1.
Value = 1024 >> 3 ' Returns 128.
Value = -1 >> 1 ' Returns &H7FFFFFFF (logical shift fills with 0).