Системи числення і переведення з двійковій в десяткову
Системи числення - різновиди
Найпоширеніші в сучасному світі методи розрахунків - десятковий і двійковий. Вони використовуються в абсолютно різних областях, але обидва однаково важливі. Нерідко потрібно і переведення з двійковій в десяткову систему або навпаки. Назви походять від підстав, які залежать від того, скільки знаків використовується в записі чисел. У двійковій це тільки 0 і 1, а в десяткового - від 0 до 9. В інших системах крім цифр використовуються літери, інші значки і навіть ієрогліфи, але практично всі вони вже давно застаріли. Оскільки навіть інші різновиди числових систем набагато менш поширені, то що йтиметься насамперед про два вже згаданих. Насправді дивно, як все це можна було придумати. Поговоримо на цю тему окремо.
Історія виникнення
Навіть зараз, коли, здавалося б, весь світ вважає однаково, зустрічаються самі різні системи. У найвіддаленіших куточках земної кулі задовольняються лише поняттями "один", "два" і "багато", або чимось подібним. Що вже говорити про ті часи, коли людям було набагато складніше контактувати один з одним, так що використовувалося величезна кількість самих різних видів записів і методів підрахунків. Людство далеко не відразу прийшло до існуючої системи, і це відбивається в тому, що година розділений на 60 хвилин, а не на 100 відрізків часу, що було б, здається, логічніше. І в той же час люди частіше вважають десятками, ніж дюжинами. Все це відгомони того часу, коли інструментами для кількісної оцінки чого-небудь служили власні пальці або, наприклад, фаланги деяких з них. Так виникли десяткова і двенадцатірічная системи. Але як же виникла двоичная? Дуже просто і логічно. Справа в тому, що, наприклад, у діодів є всього два положення: він може бути або включений, або вимкнений. Перший стан, таким чином, можна записати як 1, а друге - як 0. Однак це не означає, що двійкова система виникла одночасно з електронними приладами. Її використовували набагато раніше, наприклад, Лейбніц вважав її вкрай зручною, витонченою і простий. Навіть дивно, що ця система числення не стала в підсумку основний.
Сфери застосування
Для більшості людей дві основні системи числення просто не перетинаються. Так що здійснювати переклад з двійкової в десяткову - завдання, посильна не для всіх. Справа в тому, що остання система використовується в побуті, спілкуванні між людьми, при простих підрахунках і т. Д. А ось на мові двійковій говорять всі цифрові прилади, в першу чергу комп'ютери. Будь-яка інформація, що знаходиться в пам'яті кожного настільного ПК, планшета, телефону, ноутбука та багатьох інших приладів - це різні поєднання нулів і одиниць.
Відмінності та особливості
Коли мова йде про системи числення, обов'язково необхідно якось розмежувати їх. Адже відрізнити 11 або 100 в різних методах записи просто так абсолютно неможливо. Саме тому використовується покажчик нижче і правіше самого числа. Так що, побачивши запис 112 або 10010, можна зрозуміти, про що йде мова. Обидві системи є позиційними, тобто від місця тієї чи іншої цифри залежить її значення. Про розрядах десяткової системи розповідають у школі: там є одиниці, десятки, сотні, тисячі і т. Д. У двійковій все те ж саме. Але у зв'язку з тим, що її підстава - 2 - менше 10, то розрядів їй потрібно набагато більше, тобто запис чисел виходить набагато довше. До речі, в двійковій, як і у всіх інших системах, крім десяткової, як найпоширенішою, читання відбувається особливим чином. Якщо основа 10 дає можливість прочитати 101 як "сто один", то для 2 це буде "один нуль один".
Повертаючись до питання розрядів, необхідно повторити, що у зв'язку з набагато меншою підставою потрібно більше розрядів. Так, наприклад, 810 - це 10002. Різниця очевидна - один розряд і чотири. Ще одна серйозна відмінність - в двійковій системі не існує негативних чисел. Зрозуміло, записати його можна, але зберігатися і зашифровувати воно все одно буде інакше. Отже, як же проводиться переклад з двійкової системи числення в десяткову і навпаки?
Алгоритм
Досить рідко, але все-таки іноді доводиться здійснювати перехід від однієї підстави до іншого. Іншими словами, виникає потреба в тому, щоб здійснити переказ з двійкової системи в десяткову і навпаки. Сучасні комп'ютери роблять це легко і швидко, навіть якщо записи дуже довгі та об'ємні. Люди теж можуть це робити, хоч і набагато повільніше і менш ефективно. Провести і одну, і другу операцію не так вже й складно, але потрібні знання, як це робити, уважність і практика. Для того щоб перейти від підстави 2 до 10, необхідно зробити наступні кроки:
1) підрахувати кількість розрядів, тобто цифр в числі (рахуючи від 0);
2) послідовно помножити значення на 2, зведене в ступінь, рівну номеру позиції;
3) скласти отримані результати.
Ще один спосіб - почати підсумувати твори цифр послідовно справа наліво. Це називається перетворенням методом Горнера і багатьом здається більш зручним, ніж звичайний алгоритм.
Для того щоб провести зворотну операцію, тобто перейти від десяткової системи до двійковій, потрібно зробити ось що:
1) розділити початкове число на 2 і записати залишок (1 або 0);
2) повторювати крок 1 до моменту, коли залишиться тільки 0 або 1;
3) записати отримані значення по порядку.
Існують і інші способи провести переклад з двійкової в десяткову систему числення і навпаки. Але вони не мають ніякої переваги перед описаним алгоритмом, не є більш ефективними. Зате вони вимагають навичок здійснення арифметичних дій у двійковій системі, що доступно дуже небагатьом.
Дробу
На щастя чи на жаль, але факт залишається фактом - в двійковій системі використовуються не тільки цілі числа. Переклад дробів - не надто складна, але найчастіше трудомістка для людини завдання. Якщо початкове число представлено в десятковій системі, то після перетворення цілого числа все, що після коми, потрібно вже не ділити, а множити на 2, записуючи цілі частини. Якщо ж проводиться переклад з двійкової в десяткову систему, то все ще простіше. У цьому випадку, коли почнеться перетворення частини після коми, ступінь, в яку зводиться 2, буде послідовно дорівнювати -1, -2, -3 і т. Д. Найкраще буде розглянути це на практиці.
Приклад
Для того щоб зрозуміти, як застосовувати описані алгоритми, необхідно проробити всі операції самостійно. Практикою завжди можна закріпити теорію, так що найкраще буде розглянути такі приклади:
- переклад 10001012 в десяткову систему: 1х26 + 0х25 + 0х24 + 0х23 + 1х22 + 0х21 + 1х20 = 64 + 0 + 0 + 0 + 4 + 1 = 6910;
- за допомогою методу Горнера. 001101110102 = 0х2 + 0 = 0х2 + 0 = 0х2 + 1 = 1х2 + 1 = 3х2 + 0 = 6х2 + 1 = 13х2 + 1 = 27х2 + 1 = 55х2 + 0 = 110х2 + 1 = 221х2 + 0 = 44210;
- 1110,012: 1х23 + 1х22 + 1х21 + 0х20 + 0х2-1 + 1х2-2 = 8 + 4 + 2 + 0,25 = 14,2510;
- з десяткової системи: 1510 = 15/2 = 7 (1) / 2 = 3 (1) / 2 = 1 (1) / 2 = 0 (1) = 11112;
Як не заплутатися?
Навіть на прикладі лише двійковій і десятковій систем стає ясно, що зміна підстави вручну - нетривіальне завдання. Але ж є ще й інші: Шістнадцяткова, восьмерична, шестидесяткова і т. Д. При ручному перекладі з однієї системи числення в іншу вкрай необхідна уважність. Не заплутатися дійсно складно, особливо якщо запис довга. Крім того, не можна забувати, що розряди вважаються з 0, а не 1, тобто кількість цифр завжди буде на одну більше. Зрозуміло, потрібно уважно підраховувати число розрядів і не допускати помилок в арифметичних діях і, звичайно, не пропускати кроки в алгоритмі. Зрештою, існують способи здійснювати перехід між основами програмними методами. Але тут простіше самостійно написати скрипт, ніж шукати його на просторах всесвітньої мережі. У кожному разі, навички ручного перекладу, як і теоретичне уявлення про те, як це робиться, теж повинні бути.