Задание №14 — Анализ выражений
#69269Задание №14ФИПИ
Системы счисления
Значение арифметического выражения 3 · 438 + 2 · 423 + 420 + 3 · 45 + 2 · 44 + 1 записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
Правильный ответ
15
Пояснение
Решение:
Основание 16 — это , поэтому , а . Переведём каждое слагаемое:
- ;
- ;
- ;
- и , вместе ;
- .
Все коэффициенты меньше 16, значит переносов нет и это уже готовые шестнадцатеричные цифры:
Старший разряд — 19-й, поэтому в записи 20 цифр. Ненулевых среди них 5 (в разрядах 19, 11, 10, 2 и 0), значит нулей .
n = 3*4**38 + 2*4**23 + 4**20 + 3*4**5 + 2*4**4 + 1
s = ''
while n:
s = '0123456789ABCDEF'[n % 16] + s
n //= 16
print(s, s.count('0'))
Ответ: 15