Для чого потрібні системи числення в інформатиці

Для чого потрібні системи числення в інформатиці



Все про системи обчислення в інформатиці

Коли мова заходить про IT та інформатику, користувачам та розробникам доводиться мати справу з різноманітними системами числення. Вони допомагають відображати дані, а також вести запис чисел та символів на пристрої.

У цій статті буде розказано про те, які системи числення існують, навіщо вони потрібні, де застосовуються. Відповідні теми зазвичай торкаються ще школах – під час уроків інформатики у середніх-старших класах. Тому кожен розробник, що поважає себе, повинен добре розбиратися в позначеному напрямку.

Визначення

Система числення – це спеціальна система запису виразу чисел. Математичне подання чисел заданого набору з використанням цифр та інших символів узгодженим чином.

Сукупність правил запису чисел через символьно-цифірні кінцеві набори. Одна й та послідовність може бути представлена ​​різними числами у різних системах «записи». Приклад – 11 у десятковій системі, три – у двійковій, два – в унарній.

Значення та їх особливості

Значення – це число, яке становить та чи інша цифра. Не всі компоненти можуть працювати з усіма числами, що використовуються сьогодні. Приклади – римські значення. Вони не мають нуля.

  • представляє корисний набір чисел (приклади – цілі, раціональні);
  • дає унікальне уявлення кожному наявному елементу;
  • відбиває алгебраїчні чи арифметичні структури.

Без систем неможлива робота з комп'ютерами. Саме тому відповідний напрямок потребує окремої уваги.

Види

Існують різні види систем числення:

  1. Непозиційні. Вони значення залежить від її позиції.
  2. Позиційні.«Підсумок» залежить від того, де саме стоїть той чи інший компонент.
  3. Однорідні.
  4. Неоднорідні.

Кожен варіант передбачає свої ключові особливості.

Позиційний тип

Тут значення кожної цифри залежатиме від її розряду у числі. Приклад – для людини звична 10-та. Вона є позиційною. 453 розглянуто як приклад. Тут 4 - це сотні, що вказує на 400, 5 - десятки (50), 3 - одиниці (3). Чим більший розряд, тим вище виявиться значення.

Непозиційний тип

Найдавніший варіант. Кожен компонент – це окрема величина. Вона не залежить від розряду. У програмуванні немає, тому розглядати його докладніше не рекомендується.

Однорідний тип

Однорідний варіант – це той, у якому всім позицій числа набір допустимих символів буде однаковим. Приклад – десяткова система. Для запису елемента можна використовувати у кожному розряді лише одну цифру. А саме – від 0 до 9. Запис 450 допускається (1-й розряд – 0, 2 – 5, 3-й – 4), а ось 4F5 – ні.

Змішаний тип

У ньому кожному розряді допускається різний набір інших позицій. Приклад – це вимір часу:

Тепер можна розглянути, які системи найчастіше зустрічаються в інформатиці.

Десяткова

Найпоширеніша. Це частина позиційної системи числення. Застосовується у повсякденному житті повсюдно. Кожен розряд тут – це лише одна цифра. Діапазон становить від 0 до 1 включно. Підстава системи числення - 10.

Щоб краще зрозуміти принцип використання, варто розглянути приклад – 503. У непозиційній воно виглядало б так: 5 + 0 + 3 = 8. У позиційній кожна цифра числа множиться на підставу, зведену до ступеня, що дорівнює номеру розряду.

Щоб уникнути плутанини, запис виглядатиме так: 503=50310. Використовується нижній індекс.

Двійкова

Двійкову систему числення переважно використовують пристрої та комп'ютери. Таке рішення прийшло через те, що 10 вимагала раніше величезних витрат. Це позначалося вартості ЕОМ.

Довелося створювати "урізану" версію. Основа тут – 2. Для запису використовуються символи:

Кожен розряд має лише одне відповідне значення. Приклад 101. Це – десяткове 5. Для того, щоб здійснити переведення з двійкової до 10-ї, потрібно помножити цифру 2-го числа на 2. Звести «двійку» до рівня, що дорівнює розряду. Так 1012 буде:

Для роботи з кодами ЕОМ зберігає кожної окремої цифри тригер. Це – електронна схема, яка приймає два стани. Одне – відповідає «нулю», інше – «одиниці».

Щоб запам'ятати окреме число, застосовується регістр – група тригерів, кількість яких відповідає кількість розрядів у двійковому числі. А їхня сукупність – це оперативна пам'ять. Число, що міститься в регістрі, має назву машинного слова. Для отримання їх нумерують. Номер – адреса осередку.

Вісімкова

Восьмирічна система застосовується в техніці та гаджетах. Як основа виступає 8. Містить для запису цифри в діапазоні від 0 до 7.

Приклад – 254. Для того, щоб перевести його до 10-ї, потрібно кожен розряд вихідного «компонента» помножити на 8n, де n – це кількісний номер розряду. Вийде: 2*8 2 + 5*8 1 + 4*8 0 = 128+40+4=17210.

Шістнадцяткова система

Шістнадцяткову систему числення використовують у сучасних комп'ютерах досить часто. Приклад – за допомогою її можна задати колір.

Вона має основу 16.Для виразу чисел система використовує числа 0-9, і навіть літери A-F. Літерні записи відповідно дорівнюють 10, 11, 12, 13, 14 і 15.

Щоб краще розуміти принцип роботи цієї системи, варто розглянути наочний приклад - 4F1516. Щоб перевести його до 8-ї, потрібно:

  1. Перетворити число на двійкове.
  2. Розбити на групи по 3 розряди (елементи).

Для переведення в 2-е число кожна цифра представлена ​​у вигляді 4-розрядного числа:

У першій та останній групах не вистачає розряду. Вони доповнюються нулями: 0100 1111 0101. Це значення поділяється на групи по 3 компоненти праворуч-ліворуч. Виходить 010011110101.

Для того щоб побачити результат, потрібно перевести кожну двійкову групу у вісімкову систему. Розряди множаться на 2 n де n – це номер того чи іншого розряду. На виході вийде 23688.

Восьмеричну та шістнадцяткову системи числення активно вивчають у школах на уроці інформатики. Вони не надто потрібні середньостатистичним користувачам, але стануть у нагоді тим, хто планує заглиблюватися в програмування.

Про перетворення

Працюючи з будь-якою системою числення, потрібно розуміти, як переводити число з одного «варіанту» в інший. Ці навички стануть у нагоді кожному, хто планує заглиблюватися в IT.

У десяткову

Перший варіант – це будь-яку систему привести до десяткового вигляду. Тому, що звичний для кожного користувача.

Нехай буде дано число a1a2a3, де основа – це b. Тоді потрібно кожен розряд помножити на bn. N виступить номером розряду. Формула перекладу виявиться: (a1a2a3)b=(a1*b 2 +a2*b 1 +a3* b 0)10.

З десяткової

З десяткової системи числення можна перетворити число на будь-яку іншу.Тут варто розділити процес на формування дробової та цілої частин. Інакше досягти бажаного результату не вийде.

У випадку цілої частини діяти необхідно так:

  1. Послідовно виконується розподіл цілої частини на основу нової системи. Робиться це доти, доки число не стане банкрутом.
  2. Отримані залишки – це цифри компонента, що шукається.
  3. Запис здійснюється з останнього залишку до першого.

Дробна частина перетворюється так:

  1. Відповідний елемент множиться на основу системи, в яку здійснюється переклад.
  2. Ціла частина відокремлюється.
  3. Помножити дрібну частину на основу нової. Робити це до тих пір, поки вона не дорівнюватиме 0.
  4. Записати отриманий результат множення. Робиться це у порядку, що відповідає отриманню.

Приклад – 1510 при переведенні у вісімкову систему числення – це 178. Вийшло як: 15/8 = 1, залишок – 7, і навіть 1/8 = 0, залишок 1.

З двійкової у вісімкову та шістнадцяткову

Для того, щоб перевести 1a (число) з двійкової до 8-ї системи, потрібно:

  1. Розбити його на групи по 3 компоненти праворуч-ліворуч.
  2. Розряди, що бракують, доповнити провідними нулями.
  3. Перетворити кожну групу з допомогою множення розряду на 2 n .

Аналогічно діяти потрібно з шістнадцятковою системою, але ділити компонент необхідно на групи по 4 елементи.

З 8-ої та 16-ої до 2-ї

Що стосується восьмеричной системою – кожен розряд числа перетворюється на 3-х розрядне двійкове шляхом розподілу на 2. Відсутні крайні розряди – це нулі.

Шістнадцяткова система передбачає перетворення кожного розряду на двійкове 4-х компонентне. Супроводжується розподілом на 2. Відсутні крайні розряди - це нулі.

Швидке занурення в основи

Щоб навчитися працювати в непозиційній системі числення або будь-якої іншої, варто заглибитись в основи інформатики. У цьому допоможуть спеціалізовані дистанційні онлайн-курси.

На них користувача з нуля навчать основ інформатики, програмування, дизайну та графіки. Допоможуть освоїти у найкоротші терміни інноваційні IT-професії. Наприкінці кожного курсу користувачі одержують офіційні електронні сертифікати.

Бажаєте освоїти сучасну IT-спеціальність? Величезний вибір курсів по затребуваним IT-напрямкам є в Otus!

Системи числення та їх особливості

Системи числення – це символічні способи запису чисел. Правила та принципи, що дозволяють представляти значення у тій чи іншій формі за допомогою спеціальних письмових символів.

У світі існують різні системи числення. З їх допомогою можна:

  • представляти безліч цілих і речових чисел;
  • відображати алгебраїчні та арифметичні числові структури;
  • унікалізувати уявлення кожного наявного значення.

За допомогою тієї чи іншої форми представлення числа можна записати їх у різних форматах. Приклад – бінарна система. Вона дозволяє записувати числові значення у формі, зрозумілій комп'ютерам та іншій техніці.

Усі системи числення умовно поділяються на великі категорії – позиційні і непозиційні. Далі належить познайомитися з кожним запропонованим варіантом. Особливу увагу потрібно приділити непозиційним системам числення. Вони зустрічаються в реальному житті та комп'ютерних пристроях не так часто, як позиційні.

Ключові поняття

Перед більш поглибленим вивченням непозиційних систем кожен має запам'ятати кілька понять та визначень:

  • числом називається кількість, а цифрою – символьний запис відповідної кількості;
  • система числення – набір цифр та узгоджені правила/принципи опису чисел;
  • основа системи – кількість цифр у ній;
  • розряд - індекс цифри, що починається з нуля і відраховується праворуч-наліво;
  • біт - проста (мінімальна) одиниця подання інформації в бінарній системі, представлена ​​0 або 1.

Ці терміни та визначення допоможуть краще розібратися в темі, що розглядається.

Позиційний вигляд систем

Позиційна – це система, у якій конкретне значення числа визначається як цифрами, а й їх становищем (позицією). Один і той же числовий знак запису може мати різноманітні значення.

Наочним прикладом може бути арабська система. У ній перший розряд праворуч – це одиниці, другий розряд відведений під десятки, третій – для відображення сотень тощо.

У позиційній формі подання число 463 можна подати як:

Сюди можна віднести системи числення з підставами 2, 16 та 8. Бінарні (двійкові) форми запису найчастіше використовуються для обробки даних в інформатиці та комп'ютерах.

Непозиційний вид систем

Непозиційні системи числення – системи, у яких значення чисел залежить від їхньої позиції (розряду) в записи. Вони визначаються лише знаком (цифрою). Для позначення одиниць, десятків, сотень, тисяч тощо використовуються спеціальні символьні записи.

Непозиційна система – спосіб запису чисел за допомогою символів. У ній зміна положення знаком не позначається на значенні величини елемента.

Така форма подання значень поділяється на кілька видів:

  • біноміальну;
  • грецьку;
  • римську;
  • давньоєгипетську;
  • вавилонську;
  • систему обчислення Майя;
  • залишкових класів.

Далі кожен тип буде розглянуто докладніше.Особливу увагу приділено римській формі уявлення чисел.

Біноміальна

Число буде представлено у вигляді деякої суми біномних коефіцієнтів. Біноміальні коефіцієнти – поєднання кількості сполучень, визначене для невід'ємних чисел. Ці узагальнення з'являються переважно у завданнях, де потрібен перебір всіх можливих варіантів відповідей, соціальній та теорії ймовірності.

Число X буде представлено у такій формі записів формулою:

Біноміальні числа можуть бути:

  1. Лінійні. Вони є послідовністю з 0 і 1. Відповідна форма запису передбачає наявність двох чисел – кількості стовпців у матриці та суму числа стовпців і рядків у ній.
  2. Матричними. Представляються у вигляді матриць, елементами яких виступають одиниці та нулі. У кожному стовпчику допускається наявність лише однієї одиниці.

За допомогою такої системи вдасться швидко обчислити потрібну комбінацію без попереднього перебору всіх варіантів перед нею, організувати тестування програмного забезпечення, контроль якості та аналіз проведених лотерей.

Залишкові класи

Базуються на модульній арифметиці. Тут числа порівнюватимуть один з одним по модулю на факт видачі одного й того ж залишку. Система залишкових класів немає ефективних алгоритмів для порівняння чисел, і навіть дозволяє представляти лише обмежену кількість значень.

Тут використовуються набори попарно взаємно простих модулів (m1m2, …, mn) та добуток M = m1 * m2 * …. * mn так, щоб кожному цілому x з відрізка [0, M-1] був зіставлений у відповідність набір відрахувань (x1, x2, …, xn), де:

Така непозиційна система широко застосовується в інформаційній безпеці, контролі за помилками, у військовій та космічній техніці.

Система Майя

У системі обчислення Майя використовується запис чисел із основою 20. Вона використовувалася древніми племенами. У реальному житті не трапляється.

Даний метод обчислення включає нуль і 19 складних цифр. Нуль позначався порожньою черепашкою, інші цифри представлені точками та горизонтальними рисочками.

Вище можна побачити систему запису чисел племенами Майя. Вона використовувалася у календарних розрахунках.

Вавилонська

Вавилонська система числення – позиційний метод запису з основою 60. Така концепція використовувалася у Стародавньому Вавилоні. Вона є першим відомим способом запису шістнадцяткової системи.

Числа записуватимуть праворуч-наліво в порядку зменшення. Спочатку йдуть сотні, потім – десятки та одиниці. Після досягнення 60 відзначається новий числовий ряд. Подальший запис чисел здійснюється з одиниці.

Як цифри в вавилонському методі обчислення використовувалися клини різних видів для одиниць, десятків та позначення нуля.

Давньоєгипетська

У Стародавньому Єгипті всі записи, включаючи числові, базувалися на ієрогліфах. З їх допомогою записувалися основні значення:

Інші значення виходили з допомогою складання ключових чисел. Спочатку записувалося число вищого ладу, після нього – нижча. Множення та розподіл проводилося за допомогою послідовного подвоєння числових значень. Повторення кожної цифри допускалося до 9 разів.

Таблиця, представлена ​​вище, допоможе зрозуміти, як записувалися числові значення Стародавньому Єгипті.

Грецька

Грецька система числення - метод, який використовує для представлення чисел літери грецького алфавіту та деякі знаки докласичного періоду. Ця концепція стала застосовуватися ще 3 столітті до нашої ери.

За допомогою грецької системи числення, використовуючи запропоновану вище таблицю, можна записувати числові значення від 1 до 999.

Римська система числення

Серед непозиційних систем числення можна назвати римський метод представлення чисел. Він ґрунтується на записі чисел за допомогою латинського алфавіту. У реальному житті така концепція все ще використовується, але в основному в друкованих виданнях та декоративних цілях: для позначення цифр на годиннику, розділів книг і так далі.

Записувати числові значення допоможе наступна таблиця відповідності:

Усі числові значення виходять з допомогою хитрих комбінацій різноманітних букв-цифр. Їх зчитування залежить від того, які саме елементи є сусідами один з одним.

Загальні правила римського методу запису:

  • цифри можуть повторюватися, але не більше трьох разів поспіль;
  • якщо найменша цифра стоїть праворуч від такої ж чи більшої, вони складаються одна з одною (VIII = 8);
  • якщо менша цифра розташована ліворуч від більшої, від більшого потрібно відняти менше (IV = 4).

До появи римської системи числення віднімання не використовувалося. В античності все змінилося, тому записи стали набувати нового вигляду. Серед них з'явилися комбінації, які під час розрахунків використовуються як єдине ціле:

  • IV – 4;
  • IX – 9;
  • XL – 40;
  • XC - 90;
  • CD - 400;
  • CM – 900.

Запам'ятавши ці правила, кожен зможе перевести числове значення римську форму записи.

Переведення десяткового числа до римського

Щоб краще розуміти принципи перекладу та роботи з римським методом обчислення, рекомендується розглянути приклад. Має бути здійснено перетворення числа 1998 у десятковій формі. Для цього потрібно:

  1. Взяти найбільше римське число і подивитися, чи більше воно заданого.
  2. Якщо так - відняти його з римського і записати результат, що вийшов.
  3. Якщо ні – перейти до наступного римського.
  4. Проробляти перелічені операції до того часу, поки залишку не вийде нуль.

Для перекладу 1998 римську систему потрібно порівняти його спочатку з 1000 (M). Воно більше, тому потрібно виконати операцію 1998-1000. У записі піде M. Тепер потрібно перевірити результат (998) з 1000 (M). Він менший, тому порівняння ведеться з 900 (CM). Знову виконується віднімання: 998 - 900 = 98. Залишок стане вже MCM. Далі порівняння з 90 (XC). Після віднімання вийде залишок 8 і запис MCMCX.

Менше числа 8 у римській системі – 5 (V). Залишком стане 3, а результат розрахунків – VCVXCV. Залишається послідовно додати три одиниці (I) до запису. Результатом стане MCMXCVIII.

Бажаєте освоїти сучасну IT-спеціальність? Величезний вибір курсів за затребуваними IT-напрямками, в тому числі і з математики, є в Otus!

Системи числення

У цьому гайді розберемося, що таке системи числення, навіщо програмісти використовують незвичні методи для запису чисел як і розуміти.

  • Що таке системи числення
  • Від десяткових чисел до двійкових
  • Навіщо потрібна двійкова система
  • Як переводити двійкові числа в десяткові
  • Як переводити десяткові числа в двійкові
  • Шістнадцяткова система числення
  • Вісімкова система числення
  • Конвертація чисел у програмах
  • Сервіси для переведення із системи в систему
  • Висновок

Що таке системи числення

З давніх-давен людям потрібно було записувати числа. У торгівлі числа потрібні, щоб знати, скільки товарів є складі і скільки грошей принесла угода. Записи про становище небесних тіл допомогли шумерам скласти перший календар, а календар, у свою чергу, став у нагоді, щоб заздалегідь готуватися до посівних та збирання врожаю. Будівельні кошториси, переписи населення, розподіл спадщини — числа виявилися дуже затребуваними навіть у найдавніших державах.

Тож люди навчилися записувати числа у незапам'ятні часи. Невеликі числа легко записувалися зарубками або насічками, але якщо в числі кілька знаків, потрібна інша система запису. Цю проблему у різних країнах вирішували по-різному.

Зараз різні способи запису чисел називаються системами числення.

Систем обчислення було вигадано досить багато, і навіть у наші дні ми використовуємо дві системи, що виникли в давнину. З Стародавнього Риму до нас прийшла римська система численняде цифри позначаються буквами латинського алфавіту. За основу римляни взяли кількість пальців на одній руці — 5 і на двох руках — 10. Числа 1, 5 і 10 у римській системі позначаються буквами I, V і X, і за допомогою них можна записати будь-яке число від 1 до 49. Наприклад , VII - це 7, а XIX - 19.

Від Стародавніх Шумерів ми навчилися ділити дроби на шістдесят частин. Саме через них у нашій годині 60 хвилин, а у хвилині 60 секунд. Шумерська система числення так і називається шістдесяткова. Але, звичайно, найбільш звичним виглядає чисельний запис у системі, яку вигадали в Стародавній Індії. Зараз її називають арабською або десятковою системою числення.

Від десяткових чисел до двійкових

Розберемося, як влаштована десяткова система, з прикладу довільного великого числа.

Це чотиризначне число, тому що воно складається із чотирьох цифр. І оскільки йдеться про десяткову систему, ми можемо використовувати десять різних цифр.

Величина, яка ховається за кожною цифрою, залежить від її позиції, тому таку систему числення називають також позиційною. Праворуч ми записуємо наймолодші значення. одиницізліва від них десятки, потім сотні, і так далі. Запис 1702 означає буквально таке.

Цифри, записані в сусідніх позиціях, розрізняються вдесятеро — це десяткова система. Однак, як ми говорили раніше, звична нам десяткова система — далеко не єдина. Однак, спираючись на неї, нам буде простіше зрозуміти принципи роботи інших систем числення. Наприклад, для запису того самого числа 1702 у двійковій системі треба дотримуватися тих самих правил, але замість десяти цифр нам знадобиться всього дві — 0 і 1.

Цифри, записані в сусідніх позиціях, відрізнятимуться не вдесятеро, а вдвічі. Тобто там, де в десятковій системі ми бачимо 1, 10, 100, 1 000, 10 000, двійковими будуть числа 1, 2, 4, 8, 16 і так далі.

Це дуже велике двійкове число. Давайте запишемо його у звичній формі:

Це число могло бути дуже великим десятковим числом, оскільки складається з тих самих цифр. Щоб відрізняти двійкові числа від десяткових, як індекс у них вказують основу системи числення, тобто 2.

Це особливо важливо, коли в тексті одночасно зустрічаються десяткові та двійкові числа.

Навіщо потрібна двійкова система

Двійкова система виглядає дуже незвичною і числа, записані в ній, виходять величезними.Навіщо вона взагалі потрібна? Хіба комп'ютери не можуть працювати зі звичною нам десятковою системою?

Виявляється, колись вони саме так і працювали. Найперший комп'ютер ENIAC, розроблений у 1945 році, зберігав числа у десятковій системі числення. Для зберігання однієї цифри застосовувалася схема, яка називається кільцевим регістром, вона складалася з десяти радіоламп.

Щоб записати всі числа до мільйона - від 0 до 999 999 - треба шість цифр, отже, для зберігання таких чисел потрібно цілих 60 ламп.

Інженери помітили, що якби вони кодували числа в двійковій системі, то для зберігання таких же великих чисел їм знадобилося б лише двадцять радіоламп — утричі менше!

Перша перевага двійкових чисел – простота схем. Друга, і не менш важлива — швидкодія. Додавання чисел, що зберігаються в кільцевому регістрі, вимагає до десяти тактів процесора на кожну операцію. Додавання двійкових чисел можна виконати за один такт — тобто вдесятеро швидше.

Група інженерів, що створили перший комп'ютер, в 1946 опублікувала статтю, де обґрунтувала перевагу двійкової системи для представлення чисел в комп'ютерах. Першим серед авторів було вказано прізвище американського математика Джона фон Неймана. Тому зараз принципи проектування комп'ютерів називаються архітектурою фон Неймана, хоча це зовсім справедливо стосовно іншим винахідникам комп'ютера.

При розробці програми з двійковим записом зіткнутися досить складно: комп'ютер у переважній більшості випадків сам переводить двійкові числа до десяткових і назад. Можна довго писати код, навіть не підозрюючи, що всередині комп'ютера дані зберігаються певним чином.

Навіщо вивчати двійкову систему, якщо комп'ютер виконує всю роботу за нас? Іноді програмістам доводиться писати програми, які працюють безпосередньо з обладнанням. Наприклад, розробники ігор повинні знати, як працюють відеокарти, щоб зробити комп'ютерну графіку швидше. А розробники операційних систем розуміють як влаштовані диски, щоб надійно зберігати дані.

Програми, які працюють із залізом безпосередньо, називаються системними або низькорівневими. Для створення розробник повинен розуміти, як влаштований комп'ютер. Тому вивчення систем числення дозволяє програмісту розширити свій професійний діапазон та стати фахівцем широкого профілю.

Тому для того, щоб писати складні системні програми, потрібно розуміти, як влаштовано двійкову систему числення.

Як переводити двійкові числа в десяткові

Розберемося, як швидко переводити двійкові числа до десяткових. Для прикладу знадобиться досить велике двійкове число, щоб ми не могли обчислити його на пальцях.

Запишемо його в математичному записі, пам'ятаючи, що замість основи 10, ми використовуємо основу 2.

З цього прикладу видно, що у всіх доданків лише два множники — 0 і 1. Доданки з множником 0 дорівнюють нулю, тому їх можна відкинути, залишивши тільки доданки з множником 1.

У доданків з множником 1 цей множник можна записувати.

Тепер неважко порахувати суму.

Висновок: число 11010 у двійковому записі — те саме, що 26 у десятковому.

Ще раз повторимо, як перевести двійкове число до десяткового.

  • Записати число у математичному вигляді
  • Відкинути доданки з множником 0
  • Скласти результат

Програмісти іноді запам'ятовують деякі ступені два, щоб вміти оцінювати порядок двійкових чисел. Ви можете підглядати в цю таблицю:

Двійкове числоСтупінь 2Десяткова кількість
1 22 0 1
10 22 1 2
100 22 2 4
1000 22 3 8
1 0000 22 4 16
10 0000 22 5 32
100 0000 22 6 64
1000 0000 22 7 128
1 0000 0000 22 8 256
10 0000 0000 22 9 512
100 0000 0000 22 10 1 024
1 0000 0000 0000 0000 22 16 65 536
1 0000 0000 0000 0000 0000 0000 22 24 16 777 216
1 0000 0000 0000 0000 0000 0000 0000 0000 22 32 4 294 967 296

За допомогою цієї таблиці можна переводити числа із двійкової системи в десяткову практично «в умі».

Як переводити десяткові числа в двійкові

Це завдання схоже на математичну загадку, і її можна зустріти на олімпіаді для школярів.

Щоб навчитися її вирішувати, давайте ще раз подивимося на перші натуральні числа у двійковому та десятковому записі.

Десяткова кількістьДвійкове число
11 2
210 2
311 2
4100 2
5101 2
6110 2
7111 2
81000 2
91001 2

Звернімо увагу на наступну закономірність: усі парні числа — 2, 4, 6 і 8 — у двійковому записі закінчуються на 0. Усі непарні числа 1, 3, 5, 7 та 9 — на 1. Цьому є просте пояснення — у двійковому записі число 2 це як 10 у десятковій. Якщо двійкове число ділиться на два, воно кругле. Математики кажуть, що парні числа діляться на 2 без залишку (або із залишком 0), а непарні — із залишком 1:

  • при розподілі 4 на 2 залишок 0;
  • при розподілі 5 на 2 залишок 1;
  • при розподілі 6 на 2 залишок 0;
  • при розподілі 9 на 2 залишок 1.

Спробуємо перевести десяткове число 26 у двійкову систему. Для цього використовуємо розподіл куточком на 2.

Якщо 26 розділити на 2, то в результаті вийде 13, залишок від поділу 0. Продовжуємо далі:

  • 13 розділити на 2, в результаті вийде 6 залишок від розподілу 1;
  • 6 розділити на 2, в результаті вийде 3, залишок від поділу 0;
  • 3 розділити на 2, в результаті вийде 1 залишок від розподілу 1;
  • 1 розділити на 2, в результаті вийде 0 залишок від розподілу 1;

З залишків 1, 1, 0, 1 і 0 складається необхідний нам двійковий запис.

Шістнадцяткова система числення

Ми знаємо, що комп'ютер використовує числа для представлення будь-якої інформації. Наприклад, кольори зберігаються у вигляді трьох чисел - яскравості червоної, зеленої та синьої компонентів кольору.На кожен компонент відводиться вісім двійкових позицій, тому максимальна яскравість компонента дорівнює 11111111₂ або 255. Колір цілком описується великим 24-розрядним двійковим числом, наприклад, 11111010 10000000 01110010. лососевий колір.

Старші вісім позицій відводяться для зберігання червоного компонента, середні вісім – зеленого та молодші вісім – синього. Ми бачимо, що такий запис дуже громіздкий і незручний.

Здається, колір зручніше записати як десяткове число 16416882. Хоча воно займає менше місця, по ньому важко зрозуміти, яка яскравість кожного компонента.

Щоб записувати великі двійкові числа, програмісти вигадали використовувати шістнадцяткову систему числення:

  • У десятковій системі десять цифр, а в шістнадцятковій — шістнадцять
  • У десятковій системі сусідні позиції відрізняються вдесятеро, а в шістнадцятковій — у шістнадцять разів.

Як і у випадку з двійковою системою, цифри 0, 1, 2, 3, 4, 5, 6, 7, 8 та 9 запозичуються з десяткової системи. Але в цьому випадку цих цифр не вистачає: потрібно ще шість. Їх у шістнадцятковій системі прийнято позначати першими літерами англійського алфавіту:

Підстава 16Підстава 10Підстава 2
000
111
2210
3311
44100
55101
66110
77111
881000
991001
A101010
B111011
C121100
D131101
E141110
F151111

Шістнадцяткова система числення хороша тим, що група із чотирьох двійкових цифр кодується однією шістнадцятковою цифрою. Таким чином, лососевий колір виглядає як:

У шістнадцятковій системі числення він записується так:

Спочатку важко зрозуміти, який порядок у шістнадцяткового числа FA. Як і у випадку з двійковими числами, програмісти пам'ятають порядки круглих шістнадцяткових чисел. Але можна не запам'ятовувати, а підглядати до цієї таблиці:

Шістнадцяткове числоДесяткова кількість
10 1616
20 1632
30 1648
40 1664
50 1680
60 1696
70 16112
80 16128
90 16144
A0 16160
B0 16176
C0 16192
D0 16208
E0 16224
F0 16240
100 16256
1000 164 096
1 0000 1665 536
10 0000 161 048 576
100 0000 1616 777 216
1000 0000 16268 435 456
1 0000 0000 164 294 967 296

Щоб переводити числа з десяткової системи в шістнадцяткову та назад, двійкове уявлення можна використовувати як проміжне. Часто це найпростіший спосіб: двійкове і шістнадцяткове уявлення легко переводяться один в одного.

Вісімкова система числення

Восьмирічна система колись використовувалася нарівні з шістнадцятковою. З назви зрозуміло, що вона використовує лише вісім цифр: 0, 1, 2, 3, 4, 5, 6 і 7. Восьмерична система підходить для представлення шести-, дев'яти- та дванадцятирозрядних двійкових чисел.

Такі числа трапляються нечасто. Один із найвідоміших прикладів використання вісімкових чисел – права доступу в операційній системі UNIX. Вони записуються дев'ятизначним двійковим числом, наприклад 110100100 або 111101100. Запам'ятовувати і передавати такі числа незручно, тому програмісти воліють вісімкову систему числення, і записують права доступу у вигляді 644 або 754.

Популярні операційні системи Linux і MacOS беруть свій початок у UNIX, тому там права доступу також задаються вісімковим числом.

Користувачі UNIX використовують команду stat, щоб дізнатися про права доступу, і команду chmod, щоб змінити їх. На малюнку ви бачите, що команди stat та chmod використовують вісімкові числа. Детальна розповідь про ці команди виходить за межі нашої статті. Дізнайтеся більше про права доступу, і про те, що означають ці числа, можна вивчивши командний рядок Linux.

Підсумовуючи, можна сказати, що вісімкові числа зараз використовуються рідко. У переважній більшості випадків програмісти використовують шістнадцятковий запис.

Конвертація чисел у програмах

Мови програмування можуть працювати з числами, записаними у різних системах числення, і перекладати їх із однієї системи до іншої. Наприклад розглянемо роботу з різними системами числення на Python і JavaScript.

Python

Щоб записати в Python двійкове число, додайте перед ним префікс 0b. Десяткове число 26 можна записати у вигляді 0b11010. У шістнадцяткових чисел префікс 0x, А у вісімкових - 0o.

print(0b11010)
# => 26
print(0x1a)
# => 26
print(0o32)
# => 26

У всіх випадках, щоб записати число, ми пишемо спочатку цифру нуль "0", а потім букву, яка визначає систему числення. Літера "b" - перша в слові binary (двійковий), а літера "o" - в слові octal (вісімковий). Літера "x" вибивається із загального правила - це третя буква в слові hexadecimal (шістнадцятковий).

Функції bin() , hex() і oct() перетворюють число в двійкову, шістнадцяткову та вісімкову системи.

print(bin(26))
# => '0b11010'
print(hex(26))
# => '0x1a'
print(oct(26))
# => '0o32'

Завдяки префіксному запису та функціям bin() , hex() та oct() , ми можемо перетворювати числа з будь-якої системи на будь-яку.

JavaScript

У JavaScript для представлення чисел використовуються ті самі префікси, що і в Python. 0b11010, 0x1a та 0o32 — записи числа 26 у двійковій, шістнадцятковій та вісімковій системах числення.

console.log(0b11010)
// => 26
console.log(0x1a)
// => 26
console.log(0o32)
// => 26

Для перетворення чисел в іншу систему числення потрібно викликати метод toString() , передавши як параметр основу системи.

Зазвичай у JavaScript ми можемо викликати метод об'єкта за допомогою точки.Наприклад, якщо ми зберегли число змінної i , ми можемо дізнатися його шістнадцяткове уявлення, викликавши метод i.toString(16) . Але ми не можемо викликати метод у числа 2 — 2.toString(16) — тому що в JavaScript точка запису чисел розділяє цілу і дробову частини. Якщо дрібна частина дорівнює нулю, її можна не записувати, тому «2.» означає те саме, що і «2.0».

У прикладі ви бачите три коректні способи обійти цю проблему і викликати метод toString() у числа 26.

console.log((26).toString(2))
// => '11010'
console.log(26..toString(16))
// => '1a'
console.log(26
.toString(8))
// => '32'

Сервіси для переведення із системи в систему

Існує безліч сервісів для переведення чисел із системи в систему. Це вміє навіть Google. Щоб перевести двійкове число, наприклад, 11010 у десяткову систему, потрібно ввести запит 0b11010 decimal.

Щоб перевести десяткове число, наприклад, 26 у двійкову систему, потрібно ввести запит 26 binary.

Зверніть увагу, що Google використовує префікс 0b, щоб відрізняти двійкові числа від десяткових.

Щоб перевести десяткове число 137 у шістнадцяткову систему, введіть запит 137 hex.

Щоб перевести шістнадцяткове число 2BAD до десяткової системи, введіть запит 0x2BAD decimal.

Google використовує префікс 0x для того, щоб відрізняти шістнадцяткові числа від усіх інших. Щоб перевести число 121 у вісімкову систему, введіть запит 121 жовтня.

Щоб перевести число назад, введіть запит у рядку пошуку. 0o171 decimal.

Ми бачимо, що Google для представлення чисел у двійковій, шістнадцятковій та восьмеричній системі числення використовує такі ж префікси, які ми бачили в прикладах на Python і JavaScript.

Висновок

Люди винайшли різні способи записувати цифри. Ми називаємо їх системами числення.Звичний для нас спосіб запису називається десятковою системою числення.

Комп'ютери, які працювали в десятковій системі, виявилися складними та повільними. Зберігання чисел у двійковій системі дозволило спростити схеми та прискорити роботу комп'ютерів.

Зазвичай нам не потрібно знати, як саме комп'ютер зберігає числа, тому що він вміє переводити їх у звичну форму. Але якщо ми хочемо розробляти програми, які працюють з обладнанням безпосередньо — системні утиліти чи комп'ютерні ігри, потрібно розібратися, як влаштовано двійкову та шістнадцяткову системи.

Існує ряд алгоритмів, які допомагають перевести число з однієї системи до іншої, але вони є досить заплутаними. Простіше використовувати Google.

Двійковий запис чисел дуже громіздкий, тому програмісти вважають за краще записувати числа в шістнадцятковій системі числення. Восьмеричний запис чисел зараз використовується дуже рідко.

Ви можете конвертувати числа із системи в систему своєю улюбленою мовою програмування.

Подібні статті

Останні статті

Категорії