Я объясню, что происходит с базой, с которой мы более знакомы: 10.
В базе 10, скажем, у вас есть число N = 123. Теперь вы «сдвигаете» это число влево на k = 3 позиции, заполняя пустые цифры 0. Таким образом, вы получаете X = 123000.
Обратите внимание, что X = N * 10 k .
Корпус с основанием 2 аналогичен.
Example 1 (base 10) | Example 2 (base 2)
|
N = 123 | N = 110101 (53 in base 10)
k = 3 | k = 2 (in base 10)
N << k = 123000 | N << k = 11010100 (212 in base 10)
|
10^k = 1000 | 2^k = 100 (in base 2; 4 in base 10)
N * 10^k = 123000 | N * 2^k = 11010100 (53 * 4 = 212 in base 10)
|
Случай со смещением вправо является просто отражением процесса, а также аналогичен основанию 10. Например, если у меня 123456 в основании 10 и я "сдвигаю" три позиции вправо, я получаю 123. 123456/1000 (целочисленное деление), где 1000 = 10 3 .