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

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

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


Ambox content.png Черновик


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

Обозначение

<<

Описание

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

Синтаксис

value << n

Параметры

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

Пример

№1

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

№2

  1. // Упаковываем четыре 8-битных числа в одно 32-битное
  2. int a = 255;  // в двоичном представлении: 00000000000000000000000011111111
  3. int r = 204;  // в двоичном представлении: 00000000000000000000000011001100
  4. int g = 204;  // в двоичном представлении: 00000000000000000000000011001100
  5. int b = 51;   // в двоичном представлении: 00000000000000000000000000110011
  6. a = a << 24;  // в двоичном представлении: 11111111000000000000000000000000
  7. r = r << 16;  // в двоичном представлении: 00000000110011000000000000000000
  8. g = g << 8;   // в двоичном представлении: 00000000000000001100110000000000
  9.  
  10. // Эквивалент "color argb = color(r, g, b, a)" но быстрее
  11. color argb = a | r | g | b;
  12. fill(argb);
  13. rect(30, 20, 55, 55);

См.также

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

  1. processing.org - << (left shift)