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

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


{{Черновик}}
 


= Побитовый оператор сдвига влево <ref>[https://processing.org/reference/leftshift.html processing.org - << (left shift)]</ref>=
= Побитовый оператор сдвига влево <ref>[https://processing.org/reference/leftshift.html processing.org - << (left shift)]</ref>=
Строка 8: Строка 8:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
<<
<<
</syntaxhighlight>
</syntaxhighlight>
Строка 18: Строка 18:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
value << n
value << n
</syntaxhighlight>
</syntaxhighlight>
Строка 24: Строка 24:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
value - тип int: число для побитового сдвига
value - тип int: число для побитового сдвига
n    - тип int: на какое количество необходимо произвести сдвиг влево
n    - тип int: на какое количество необходимо произвести сдвиг влево
Строка 33: Строка 33:
===№1===
===№1===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
int m = 1 << 3;  // в двоичном представлении: было 1 стало 1000
int m = 1 << 3;  // в двоичном представлении: было 1 стало 1000
println(m);      // печатаем в консоли "8"
println(m);      // печатаем в консоли "8"
Строка 46: Строка 46:
===№2===
===№2===


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
// Упаковываем четыре 8-битных числа в одно 32-битное
// Упаковываем четыре 8-битных числа в одно 32-битное
int a = 255;  // в двоичном представлении: 00000000000000000000000011111111
int a = 255;  // в двоичном представлении: 00000000000000000000000011111111
Строка 83: Строка 83:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 12:12, 20 мая 2023

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



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

См.также

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