Оператор Shr (сдвиг вправо)
 
Сдвигает биты числового выражения вправо

Синтаксис
Использование

result = lhs Shr rhs

Параметры

lhs
левая сторона выражения.
rhs
правая сторона сдвига вправо.

Возвращаемое значение

Возвращает результат lhs , в котором произойдет сдвиг вправо rhs количеством.

Описание

Оператор Shr (Сдвиг вправо) сдвигает все биты в левой части выражения (lhs) вправо определенное количество раз, указанное в выражении (rhs). Это имеет эффект деления lhs на два для каждого сдвига. Например, "&b0101 Shr 1" возвращает двоичное число &b010, а "5 Shr 1" вернет 2.

Если выражение слева знаковое, знаковый бит копируется в только что созданный бит слева после сдвига.

Ни один из операндов не изменяется в любом случае.

Этот оператор может быть перегружен для определяемых пользователем типов.

Пример

'Сократить число вдвое
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

См. также