Processing:Справочник языка Processing/Побитовый оператор сдвига вправо
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Черновик |
Побитовый оператор сдвига вправо [1]
Обозначение
>>
Описание
Сдвигает биты вправо. Число слева от оператора сдвигается на количество мест, указанных числом справа. Каждый сдвиг вправо уменьшает число, поэтому каждый сдвиг вправо делит исходное число на 2. Используйте сдвиг вправо для быстрого деления или для извлечения меньшего числа из "упакованного" большего числа. Сдвиг вправо работает только с целыми числами или числами, которые автоматически преобразуются в целое число, такие как byte и char.
Побитовые сдвиги полезны при использовании типа данных color. Правый сдвиг может извлекать из переменной типа color красный, зеленый, синий и альфа-значения. Левый сдвиг можно использовать для быстрой "повторной сборки" значений цвета (быстрее, чем использование функции color()).
Синтаксис
value >> n
Параметры
value - тип int: число для побитового сдвига
n - тип int: на какое количество необходимо произвести сдвиг вправо
Пример
№1
int m = 8 >> 3; // в двоичном представлении:было 1000 стало 1
println(m); // печатаем в консоли "1"
int n = 256 >> 6; // в двоичном представлении:было 100000000 стало 100
println(n); // печатаем в консоли "4"
int o = 16 >> 3; // в двоичном представлении:было 10000 стало 10
println(o); // печатаем в консоли "2"
int p = 26 >> 1; // в двоичном представлении:было 11010 стало 1101
println(p); // печатаем в консоли "13"
№2
// Используем "сдвиг вправо" как более быстрый аналог вызова функций red(), green(), и blue()
color argb = color(204, 204, 51, 255);
int a = (argb >> 24) & 0xFF;
int r = (argb >> 16) & 0xFF; // более быстрый способ, чем вызов red(argb)
int g = (argb >> 8) & 0xFF; // более быстрый способ, чем вызов green(argb)
int b = argb & 0xFF; // более быстрый способ, чем вызов blue(argb)
fill(r, g, b, a);
rect(30, 20, 55, 55);