~a
–6
Двоичное представление
зависит от размера типа int
<<
Сдвиг влево
a << 1
10
0b1010
>>
Сдвиг вправо
a << 1
2
0b0010
Эти операторы похожи на операторы для работы с множествами, показанные
в главе 3. Оператор & возвращает биты, которые одинаковы в обоих аргументах,
а оператор | возвращает биты, которые установлены в обоих аргументах. Опера-
тор ^ возвращает биты, которые установлены в одном или в другом аргументе, но
не в них обоих. Оператор ~ обращает порядок байтов в одном аргументе, он также
Упражнения
207
изменяет знак, поскольку старший бит целого числа указывает на его знак (1 озна-
чает «минус») в арифметике дополнительных кодов, которая используется во всех
современных компьютерах. Операторы << и >> просто смещают биты влево или
вправо. Сдвиг влево на один бит аналогичен умножению на 2, а сдвиг вправо —
делению на 2.
Упражнения
1. Создайте строку Unicode с именем mystery и присвойте ей значение '\U0001f4a9'.
Выведите на экран значение строки mystery. Найдите имя Unicode для mystery.
2. Закодируйте строку mystery, в этот раз с использованием кодировки UTF-8,
в переменную типа bytes с именем pop_bytes. Выведите на экран значение пере-
менной pop_bytes.
3. Используя кодировку UTF-8, декодируйте переменную pop_bytes в строку
pop_string. Выведите на экран значение переменной pop_string. Равно ли оно
значению переменной mystery?
4. Запишите следующее стихотворение с помощью старого стиля форматирования.
Подставьте строки 'roast beef', 'ham', 'head' и 'clam' в эту строку:
My kitty cat likes %s,
My kitty cat likes %s,
My kitty cat fell on his %s
And now thinks he's a %s.
5. Запишите следующее письмо по форме с помощью форматирования нового
стиля. Сохраните строку под именем letter (это имя вы используете в следу-
ющем упражнении):
Dear {salutation} {name},
Thank you for your letter. We are sorry that our {product} {verbed} in your
{room}. Please note that it should never be used in a {room}, especially
near any {animals}.
Send us your receipt and {amount} for shipping and handling. We will send