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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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


Побитовый оператор сдвига влево [1]

Обозначение

<<

Описание

Сдвигает биты влево. Число слева от оператора сдвигается на количество мест, указанных числом справа. Каждый сдвиг влево удваивает число, поэтому каждый сдвиг влево умножает исходное число на 2. Используйте сдвиг влево для быстрого умножения или для упаковки группы чисел в одно большое число. Сдвиг влево работает только с целыми числами или числами, которые автоматически преобразуются в целое число, такие как byte и char.

Синтаксис

value << n

Параметры

value - тип int: число для побитового сдвига
n     - тип int: на какое количество необходимо произвести сдвиг влево

Пример

№1

int m = 1 << 3;   // в двоичном представлении: было 1 стало 1000
println(m);       // печатаем в консоли "8"
int n = 1 << 8;   // в двоичном представлении: было 1 стало 100000000
println(n);       // печатаем в консоли "256"
int o = 2 << 3;   // в двоичном представлении: было 10 стало 10000
println(o);       // печатаем в консоли "16"
int p = 13 << 1;  // в двоичном представлении: было 1101 стало 11010
println(p);       // печатаем в консоли "26"

№2

// Упаковываем четыре 8-битных числа в одно 32-битное
int a = 255;  // в двоичном представлении: 00000000000000000000000011111111
int r = 204;  // в двоичном представлении: 00000000000000000000000011001100
int g = 204;  // в двоичном представлении: 00000000000000000000000011001100
int b = 51;   // в двоичном представлении: 00000000000000000000000000110011
a = a << 24;  // в двоичном представлении: 11111111000000000000000000000000
r = r << 16;  // в двоичном представлении: 00000000110011000000000000000000
g = g << 8;   // в двоичном представлении: 00000000000000001100110000000000

// Эквивалент "color argb = color(r, g, b, a)" но быстрее
color argb = a | r | g | b;
fill(argb);
rect(30, 20, 55, 55);

См.также

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