Processing:Справочник языка Processing/Побитовый оператор сдвига вправо: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
{{Processing панель перехода}}
{{Processing панель перехода}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}


= Побитовый оператор сдвига вправо <ref>[https://processing.org/reference/rightshift.html processing.org - >> (right shift)]</ref>=
= Побитовый оператор сдвига вправо <ref>[https://processing.org/reference/rightshift.html processing.org - >> (right shift)]</ref>=
Строка 64: Строка 62:


<references />
<references />
{{SEO
 
|Заголовок статьи=Processing: Побитовый оператор сдвига вправо / Онлайн справочник - wikihandbk.com
|Ключевые слова=processing, побитовый оператор сдвига вправо, сдвиг вправо в processing
|Описание статьи= Сдвигает биты вправо. Число слева от оператора сдвигается на количество мест, указанных числом справа. Каждый сдвиг вправо уменьшает число, поэтому каждый сдвиг вправо делит исходное число на 2. Используйте сдвиг вправо для быстрого деления или для извлечения меньшего числа из "упакованного" большего числа. Сдвиг вправо работает только с целыми числами или числами, которые автоматически преобразуются в целое число, такие как byte и char. Побитовые сдвиги полезны при использовании типа данных color. Правый сдвиг может извлекать из переменной типа color красный, зеленый, синий и альфа-значения. Левый сдвиг можно использовать для быстрой "повторной сборки" значений цвета (быстрее, чем использование функции color()).
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Processing:Справочник языка Processing/Побитовый оператор сдвига вправо</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2017-09-05
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}
{{Навигационная таблица/Портал/Processing}}
{{Навигационная таблица/Портал/Processing}}

Текущая версия от 18:50, 19 сентября 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


Побитовый оператор сдвига вправо [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);

См.также

Внешние ссылки