Установите соответствие между выражениями с побитовыми операциями и арифметическими выражениями, которые имеют такие же значения:
1) 53 shl 3
2) 53 or 1 shl 3
3) 53 shr 3
1) 53 shl 3
2) 53 or 1 shl 3
3) 53 shr 3
- ✓ 53 * 8
- ✓ 53 + 8
- ✓ 53 div 8
1. Рассмотрим выражение 53 shl 3. Сдвиг влево на n позиций равносилен умножению на 2n, если результат не выходит за верхнюю границу типа. Поэтому 53 shl 3 = 53 * 23 = 53 * 8.
2. В выражении 53 or 1 shl 3 операция shl выполняется первой, в результате ее выполнения (1 shl 3) получаем число 00…010002 с единственной единицей в третьем бите (биты нумеруются справа налево, нумерация начинается с нуля). Это число 8. Затем вычисляется 53 or 8. 53 = 00…0110101.В результате устанавливается 1 в третий бит числа 53 (биты нумеруются справа налево, нумерация начинается с нуля), в котором третий бит был равен нулю. А это равносильно действию 53 + 23 = 53 + 8.
3. Рассмотрим выражение 53 shr 3. Сдвиг вправо на n равносилен целочисленному делению на 2n, поэтому 53 shr 3 = 53 div 23 = 53 div 8.
2. В выражении 53 or 1 shl 3 операция shl выполняется первой, в результате ее выполнения (1 shl 3) получаем число 00…010002 с единственной единицей в третьем бите (биты нумеруются справа налево, нумерация начинается с нуля). Это число 8. Затем вычисляется 53 or 8. 53 = 00…0110101.В результате устанавливается 1 в третий бит числа 53 (биты нумеруются справа налево, нумерация начинается с нуля), в котором третий бит был равен нулю. А это равносильно действию 53 + 23 = 53 + 8.
3. Рассмотрим выражение 53 shr 3. Сдвиг вправо на n равносилен целочисленному делению на 2n, поэтому 53 shr 3 = 53 div 23 = 53 div 8.