Информатика и технология программирования

       

Операция СДВИГ ВЛЕВО


Поразрядная операция " сдвиг влево" ("&#60&#60") переносит каждый бит первого операнда на то количество разрядов влево, которое задано вторым операндом, освобождающиеся разряды справа заполняются нулями. Результат операции содержит сдвинутое машинное слово, а первый операнд не изменяется. В общем случае значение результата можно получить путем перевода значения машинного слова в двоичный код и выполнения над ним операции


0x764A &#60&#60 3 ... 0111 0110 0100 1010 &#60&#60 3 ...
1011 0010 0101 0000 ... 0xB250

Однако для программиста, как правило, это не требуется. Обычно используются частные случаи, имеющие свою, более естественную интерпретацию:


a &#60&#60= 4; // сдвиг влево на одну шестнадцатеричную цифру;


a = 1&#60&#60n; // установить 1 в n-й разряд машинного слова.

У операции сдвига влево есть еще одна интерпретация. Если рассматривать машинное слово как целое без знака, то однократный сдвиг увеличивает его значение в 2 раза, двукратный -в 4 раза, n-кратный -в n-ю степень 2. То есть операция сдвига влево равносильна умножению целого на степень 2. В таком виде, например, умножение числа на 10 можно представить так:


a*10 ... a*(8+2) ... 8*a + 2*a ... (a&#60&#60 3) + (a&#60&#60 1)



Содержание раздела