Сколько единиц

У вас СД 2 типа?

Директор "Института диабета" : «Выбросьте глюкометр и тест-полоски. Больше никакого Метформина, Диабетона, Сиофора, Глюкофажа и Янувии! Лечите его этим...»

Читать подробнее >>

Данная задачка судя по всему типовая в ЕГЭ по информатике, алгоритм ее решения в общем случае следующий: перевести число в двоичную форму (например, тут — http://floatingpoint.ru/online/dec2bin.php) и подсчитать количество единиц — калькулятор нулей и единиц в двоичной записи числа

Однако в некоторых простых случаях можно попробовать разложить искомое число на сумму или разность степеней двоек, и проделать вычисления в уме.

Для этого нужно помнить несколько первых степеней двойки и двоичные записи по крайней мере некоторых чисел от 1 до 15:

1024 = 2^10, 512 = 2^9, 256 = 2^8, 128 = 2^7, 64 = 2^6, 32 = 2^5, 16 = 2^4

15 = 1111, 14 = 1110, 13 = 1101, 12 = 1100, 11 = 1011, 10 = 1010, 9 = 1001, 8 = 1000, 7 = 111, 6 = 110, 5 = 101, 4 = 100, 3 = 11, 2 = 10, 1 = 1.

Так же могут оказаться полезны некоторые суммы, например:

192 = 128 + 64

160 = 128 + 32

320 = 256 + 64

640 = 512 + 128

Приведем некоторые типовые примеры.

Сколько единиц в двоичной записи числа 1025?

1025 = 1024 + 1  1024 = 2^10 это степень двойки, а единица так и будет единицей, следовательно, 
всего в двоичной записи числа 1025 ровно 2 единицы.

10000000001

Сколько единиц в двоичной записи числа 519?

519 = 512 + 7  512 = 2^9 это степень двойки, а 7 записывается в двоичной системе как 111 и содержит три единицы, 
следовательно, всего в двоичной записи числа 519 содержится ровно 4 единицы.

1000000111

Сколько единиц в двоичной записи числа 514?

514 = 512 + 2  Слагаемые 512 = 2^9 и 2 = 2^1 - это степени двойки, следовательно, в двоичной записи числа 514 
ровно 2 единицы.

1000000010

Сколько единиц в двоичной записи числа 127?

127 = 128 - 1  Число 128 представляет собой целую степень двойки и равняется 2^7, требуя таким образом 
для своей записи ровно 8 бит: 10000000 10000000-1 = 1111111 Следовательно, в записи числа 127 содержится 7 единиц.

1111111

Сколько единиц в двоичной записи числа 195?

195 = 192 + 3 = 128 + 64 + 3  128 = 2^7  64 = 2^6  3 = 11 в двоичной системе и содержит 2 единицы. Таким образом в двоичной записи числа 195 
содержится 4 единицы.

11000011

Сколько единиц в двоичной записи числа 173?

173 = 160 + 13  160 = 128 + 32 = 2^7 + 2^5, а 13 = 1101 в двоичной системе.   Тогда всего получим 5 единиц.   

10101101

Сколько единиц в двоичной записи числа 3458?

3458 = 2048 + 1410  1410 = 1024 + 386  386 = 256 + 130  130 = 128 + 2  Таким образом 3458 = 2^11 + 2^10 + 2^8 + 2^7 + 2^1 и всего будет 5 единиц.   

110110000010

floatingpoint.ru

Решение №1

Для того, чтобы узнать, сколько единиц в двоичной записи числа 12F016, необходимо выполнить несколько действий. Перевести из 16-чной системы счисления в двоичную напрямую сложно. Поэтому:

  1. Сначала переведём это число в десятичную систему счисления (путём умножения).
  2. Затем переведём получившийся результат в двоичную систему счисления.

Шаг 1. Переводим в десятичную систему счисления

(12F0_{16}=0times 16^0+Ftimes 16^1 + 2times 16^2 + 1times16^3 =\ = 0 + 15times16 + 2times 256 + 256times 16 = 0+240+512+4096=4848)

Как быстрее работать со степенями 16-ти?

Гораздо удобнее выучить таблицу степеней двойки (см. в конце) и переводить всё в степени двойки, в этом случае подсчёт делается существенно быстрее:

(0times 16^0+Ftimes 16^1 + 2times 16^2 + 1times 16^3=\ = 0 + 240 + 2times 2^{4^2}+2^{4^3}=\ = 0 + 240 + 2times 2^8 + 2^{12}=\ = 0 + 240 + 2^9 + 2^{12} = \ = 0 + 240 + 512 + 4096 = 4848)

Шаг 2. Переводим из десятичной системы счисления в двоичную

4848 = 10010111100002

Шаг 3. Считаем количество единиц

Посчитали, получили 6 единиц. Итого, исходное число 12F016 в двоичной записи имеет 6 единиц.

Таблица степеней двойки

(2^1 = 2 \ 2^2 = 4 \ 2^3 = 8 \ 2^4 = 16 \ 2^5 = 32 \ 2^6 = 64 \ 2^7 = 128 \ 2^8 = 256 \ 2^9 = 512 \ 2^10 = 1024 \ 2^11 = 2048 \ 2^12 = 4096)

newtonew.com