Двійкова система числення відіграє важливу роль у сучасній обчислювальній техніці. Вона грунтується на використанні всього двох цифр - 0 і 1. У зв'язку з цим, одним з цікавих питань, які можуть виникнути, є кількість одиниць в двійковій записи певного числа.
Розглянемо конкретний приклад. Число 1025 в двійковій системі числення буде виглядати наступним чином: 10000000001. Тепер виникає питання: скільки одиниць міститься в цьому записі?
Підрахунок кількості одиниць можна провести простим чином - за допомогою підрахунку кожної одиниці в запису числа. В даному випадку число 1025 містить тільки дві одиниці - перша і остання цифри числа. Отже, кількість одиниць у двійковому записі числа 1025 дорівнює 2.
Методи підрахунку одиниць у двійковому записі числа 1025
Існує кілька методів підрахунку одиниць у двійковому записі числа:
1. Перебір цифр
Найпростіший метод полягає в переборі всіх цифр в двійковій записи числа і підрахунку одиниць. Для числа 1025 це означає перебір 11 цифр і підрахунок кількості одиниць.
2. Побітова операція"і"
Більш ефективним методом є використання побітової операції "і" для підрахунку одиниць. Це дозволяє скоротити кількість операцій до кількості одиниць в числі. Для числа 1025 можна використовувати наступний код:
int countOnes(int n) < int count = 0; while (n >0) < if (n & 1) < count++; >n >>= 1; > return count; > int onesCount = countOnes(1025);
В даному коді змінна " count "ініціалізується нулем, а потім в циклі перевіряється кожен біт числа"n". Якщо біт дорівнює 1, то значення змінної "count" збільшується на 1. Потім число " n "зміщується на один розряд вправо за допомогою операції зсуву">>=". Цикл виконується до тих пір, поки число "n" не стане рівним 0.
Результатом виконання коду буде змінна "onesCount", що містить кількість одиниць у двійковому записі числа 1025.
Зверніть увагу, що в даному коді використовується мова програмування C++. Для інших мов програмування можуть бути невеликі відмінності в синтаксисі.
Переклад числа 1025 в двійкову систему і підрахунок одиниць
Щоб перевести число 1025 в двійкову систему, проведемо наступні дії:
1. Розділимо число 1025 на 2:
1025 ÷ 2 = 512, залишок 1
2. Розділимо отримане ПРИВАТНЕ 512 на 2:
512 ÷ 2 = 256, залишок 0
3. Розділимо отримане ПРИВАТНЕ 256 на 2:
256 ÷ 2 = 128, залишок 0
4. Розділимо отримане ПРИВАТНЕ 128 на 2:
128 ÷ 2 = 64, залишок 0
5. Розділимо отримане ПРИВАТНЕ 64 на 2:
64 ÷ 2 = 32, залишок 0
6. Розділимо отримане ПРИВАТНЕ 32 на 2:
32 ÷ 2 = 16, залишок 0
7. Розділимо отримане ПРИВАТНЕ 16 на 2:
16 ÷ 2 = 8, залишок 0
8. Розділимо отримане ПРИВАТНЕ 8 на 2:
8 ÷ 2 = 4, Залишок 0
9. Розділимо отримане ПРИВАТНЕ 4 на 2:
4 ÷ 2 = 2, Залишок 0
10. Розділимо отримане ПРИВАТНЕ 2 на 2:
2 ÷ 2 = 1, залишок 0
11. Розділимо отримане ПРИВАТНЕ 1 на 2:
1 ÷ 2 = 0, залишок 1
Тепер необхідно записати залишки від ділення в зворотному порядку, отриману послідовність цифр, що є двійковим поданням числа 1025:
102510 = 100000000012
Для підрахунку кількості одиниць в двійковій записи числа 1025, будемо проходити по кожній цифрі і вважати кількість одиниць. В даному випадку, кількість одиниць дорівнює 3.
Застосування бітової маски для підрахунку одиниць у двійковому записі числа 1025
Двійкова запис числа 1025 являє собою послідовність бітів, що складається з 0 і 1. Для підрахунку кількості одиниць в цьому записі можна застосувати бітову маску.
Бітова маска-це послідовність бітів, яка використовується для фільтрації або перетворення іншої послідовності бітів. В даному випадку бітова маска буде складатися з одиниць, так як нам потрібно підрахувати кількість одиниць в двійковій записи числа.
Для підрахунку кількості одиниць в двійковій записи числа 1025 можна використовувати наступний алгоритм:
- Ініціалізувати змінну count в нульове значення, яка буде зберігати кількість одиниць.
- Застосувати бітову маску 1 & число, де & - це побітове і.
- Якщо результат побітового і дорівнює 1, збільшити значення змінної count на 1.
- Зсуньте бітову маску на одну позицію вправо (бітовий зсув)
- Повторити кроки 2-4 до тих пір, поки бітова маска не стане рівною нулю.
- Отримане значення змінної count дорівнюватиме кількості одиниць у двійковому записі числа 1025.
Таблиця нижче представляє приклад застосування даного алгоритму:
| Бітова маска | Число | Результат побітового і | count |
|---|---|---|---|
| 0000 0000 0000 0000 0000 0000 0000 0001 | 0000 0100 0000 0001 | 0000 0000 0000 0000 0000 0000 0000 0001 | 1 |
| 0000 0000 0000 0000 0000 0000 0000 0001 | 0000 0100 0000 0001 | 0000 0000 0000 0000 0000 0000 0000 0001 | 2 |
| 0000 0000 0000 0000 0000 0000 0000 0001 | 0000 0100 0000 0001 | 0000 0000 0000 0000 0000 0000 0000 0001 | 3 |
| . | . | . | . |
| 0000 0000 0000 0000 0000 0000 0000 0001 | 0000 0100 0000 0001 | 0000 0000 0000 0000 0000 0000 0000 0000 | 11 |
Після завершення алгоритму значення змінної count буде 11, Що означає, що двійковий запис числа 1025 містить 11 одиниць.
Використання циклів для підрахунку одиниць у двійковому записі числа 1025
Двійковий запис числа 1025-це послідовність з 11 бітів: 10000000001.
Для підрахунку кількості одиниць в даній двійковій записи можна використовувати цикл, який переглядає кожен біт числа і збільшує лічильник, якщо поточний біт дорівнює одиниці.
Приклад коду на мові Python:
count = 0number = 1025while number > 0:if number % 2 == 1:count += 1number //= 2print(f"Количество единиц в двоичной записи числа 1025: ")
В даному прикладі змінна count ініціалізується нулем, а змінна number приймає значення 1025. Потім запускається цикл, який виконується, поки Значення number більше нуля. Усередині циклу перевіряється залишок від ділення числа на 2: якщо залишок дорівнює 1, значить поточний біт дорівнює одиниці, і лічильник count збільшується на одиницю. Потім число ділиться на 2 за допомогою операції цілочисельного ділення //=. В результаті цикл переглядає всі біти числа, і в змінній count виявляється кількість одиниць.