Швидкий переклад числа з десяткової системи числення в двійкову
Метод дуже простий. Суть його така: якщо число, яке потрібно перевести з десяткової системи, дорівнює числу "2 в ступені", то це число в двійковій системі містить кількість нулів, рівне ступеню. Попереду на цих нулів додаємо "1".
- Переведемо число 2 з десятковоїсистеми. 2 = 2 1. Тому в двійковій системі число містить 1 нуль. Попереду ставимо "1" і отримуємо 1 0 2.
- Переведемо 4 з десятковоїсистеми. 4 = 2 2. Тому в двійковій системі число містить 2 нуля. Попереду ставимо "1" і отримуємо 1 00 2.
- Переведемо 8 з десятковоїсистеми. 8 = 2 3. Тому в двійковій системі число містить 3 нуля. Попереду ставимо "1" і отримуємо 1 000 2.
На малюнку квадратиками позначено двійкове подання числа, а зліва рожевим кольором-десяткове.
Аналогічно і для інших чисел "2 в ступені".
Якщо число, яке потрібно перевести, менше числа "2 в ступені" на 1, то в двійковій системі це число складається тільки з одиниць, кількість яких дорівнює ступеню.
- Переведемо 3 з десятковоїсистеми. 3 = 2 + 2 -1. Тому в двійковій системі число містить 2 одиниці. Отримуємо 11 2.
- Переведемо 7 з десятковоїсистеми. 7 = 2 3 -1. Тому в двійковій системі число містить 3 одиниці. Отримуємо 111 2.
На малюнку квадратиками позначено двійкове подання числа, а зліва рожевим кольором-десяткове.
Аналогічний переклад і для інших чисел "2 в ступені-1".
Зрозуміло, що переклад чисел від 0 до 8 можна зробити швидко або розподілом, або просто знати напам'ять їх подання до двійковій системі. Я привела ці приклади, щоб Ви зрозуміли принцип даного методу і використовували його для перекладу більш "значних чисел", наприклад, для перекладу чисел 127,128, 255, 256, 511, 512 і т.д.
Можна зустріти такі завдання, коли потрібно перевести число, не рівне числу "2 в ступені", але близький до нього. Воно може бути більше або менше числа "2 в ступені". Різниця між перекладним числом і числом "2 в ступені" повинна бути невелика. Наприклад, до 3. Подання чисел від 0 до 3 в двійковій системі треба просто знати без перекладу.
Якщо число більше. то вирішуємо так:
Переводимо спочатку число "2 в ступені" в двійкову систему. А потім додаємо до нього різницю між числом "2 в ступені" і перекладним числом.
Наприклад, переведемо 19 з десяткової системи. Воно більше числа "2 в ступені" на 3.
Якщо число менше числа "2 в ступені", то зручніше користуватися числом "2 в ступені-1". Вирішуємо так:
Переводимо спочатку число "2 в ступені-1" в двійкову систему. А потім віднімаємо з нього різницю між числом "2 в ступені-1" і перекладним числом.
Наприклад, переведемо 29 з десяткової системи. Воно більше числа "2 в ступені-1" на 2. 29 = 31-2.
Якщо різниця між перекладним числом і числом "2 в ступені" більше трьох. то можна розбити число на складові, перевести кожну частину в двійкову систему і скласти.
Наприклад, перевести число 528 з десяткової системи. 528 = 512 + 16. Переводимо окремо 512 і 16.
512 = 2 9. 51210 = 1 000000000 2.
16 = 2 4. 1610 = 1 0000 2.
Тепер складемо стовпчиком:
Дана методика дозволяє витрачати мінімум часу на переклад чисел з десяткової системи в двійкову, але за умови, що Ви прекрасно знаєте числа "2 в ступені". Якщо це не так, то завчіть ці числа. Тим більше, що в задачах з інформатики вони активно використовуються.