Форум » Системы счисления » 14.339 » Ответить

14.339

Мошкевич Елена: Сколько значащих нулей в двоичной записи числа 4в ст. 812 + 8в ст.800 - 2в ст.3125 - 8в ст.65 - 4в ст.312 + 130 В 14.339(по генератору вариантов) задаче самая большая степень двойки отрицательная. как поступать в этом случае? Как представить отрицательное число? Или вычесть обычным образом? У меня получается ответ, если считать у получившегося числа без этой степени единицы. Но почему?

Ответов - 5

Поляков: Мошкевич Елена пишет: Как представить отрицательное число? Считать нули для двоичной записи модуля числа.

Мошкевич Елена: Спасибо за ответ, я поняла как решать, возможно поможет другим. Знания про представление в дополнительном коде здесь не пригодятся. Сначала мы решаем как обычно, убрав число с самой большой степенью, выясняем сколько в этом числе единиц. Просто переходим от вида -a+b к -(a-b) и тогда замечаем, что нули у нас получатся когда мы будем вычитать единицы из нулей первого большого числа с "заемом" из старшего разряда, нули получатся везде кроме младшей единицы, там будет 1. Еще нули останутся в младших разрядах, там где мы из 0 - 0. у нас там число 130 - 10000010, значит в конце будет 1 ноль, который скомпенсирует последнюю не стандартную единицу. Ура, число нулей в данном случае совпало с числом единиц вычитаемого числа.

s11kai: Мошкевич Елена пишет: Сколько значащих нулей в двоичной записи числа 4в ст. 812 + 8в ст.800 - 2в ст.3125 - 8в ст.65 - 4в ст.312 + 130 У меня, например, в ege14, почему-то такого задания нет, самый большой номер 325. попробовал решить по условию Мошкевич Елены, получилось 1431, а где сверить - не нашел [pre2] x = (4**812+8**800-2**3125-8**65-4**312+130)*-1 count = 0 while x: if x % 2 == 0: count=count+1 x = x // 2 print(count) #count =1431 [/pre2]


Поляков: s11kai пишет: В ege14, такую задачу не нашел, у меня там, почему-то, самый большой номер 325. попробовал решить, получилось 1431, а где сверить ответ не нашел Ответ верный.

s11kai: Спасибо



полная версия страницы