Оператор побитового сдвига влево (<<)
Обновлен: Ноябрь 2007
Сдвигает влево биты выражения.
expression1 << expression2
Аргументы
expression1
Любое числовое выражение.expression2
Любое числовое выражение.
Заметки
Оператор << сдвигает влево биты выражения expression1 на количество битов, указанных в выражении expression2. Тип данных, возвращаемых данным оператором, определяется типом данных выражения expression1.
Чтобы избежать слишком большого сдвига выражения expression1 оператор << маскирует выражение expression2. В противном случае, если величина сдвига превышает количество битов, допустимых типом данных выражения expression1, все исходные биты удаляются и возвращается тривиальный результат. Чтобы при каждом сдвиге оставался хотя бы один исходный бит, операторы сдвига используют следующую формулу для вычисления фактической величины сдвига: маска выражения expression2 (использующая побитовый оператор И) с числом, на единицу меньшим, чем количество битов в выражении expression1.
Пример
Пример.
var temp
temp = 14 << 2
Переменная temp имеет значение 56, поскольку при сдвиге значения 14 (00001110 в двоичном выражении) на два бита влево получается значение 56 (00111000 в двоичном выражении).
Чтобы продемонстрировать процесс маскирования, рассмотрим следующий пример.
var x : byte = 15;
// A byte stores 8 bits.
// The bits stored in x are 00001111
var y : byte = x << 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in y are 00111100
// The value of y is 60
print(y); // Prints 60
Требования
См. также
Основные понятия
Сводные сведения об операторах
Приведение типов посредством побитовых операторов
Ссылки
Оператор назначения сдвига влево (<<=)