Поточний час:
Сьогодні 22 листопада, середа 2017 рік
Стрічка RSS

Введіть ваш Е-mail:

Zura-Blog 2 роки 11 місяців 3 дня

Ваш ip адрес:54.80.169.119

Доброї ночі!
Ви обновили сторінку в 3 : 37
Статистика

Кількість публікацій на блозі: 367
Кількість коментарів на блозі: 102
Кількість категорій на блозі: 17
Кількість міток на блозі: 28

Zura – Blog
Яндекс.Метрика UA TOP Bloggers

zura-blog24Привіт всім відвідувачам Zura – Blog, в сьогоднішній публікації буде говоритсь про ще один елемент який входить в структуру ЕОМ, це система числення. Вас ніколи не цікавило чому  людство використовує десяткову систему числення.

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

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

Кожна із систем має своє корисне застосування. Далі в цій публікації я опишу про деякі з них.

Арифметичні системи придатні для виконання арифметичних операцій і вичислень по визначеним правилам.

В позиційнних системах “вага” цифри залежить від її позиції. Так для десяткової системи “вага” любої цифри в розряді десятків, в десять раз більше “ваги” такої же цифри і розряді одиниць, і в розряді сотень в десять раз більше, чим в розряді десятків і т.д.

Всім зрозуміло що за число позначає набір символів 7364 в десятковій системі:

7 тисяч + 3 сотні + 6 десятків + 4 одиниці.

Математичною формолую можна записати так.

736410 = 7 х 103 + 3 х 102 + 6 х 101 +4 х 100

Але такий ж набір символів (цифр) може позначати своє число в іншій системі, так в восьмикратній системі, в якій використовують тільки вісім цифр (0,1, … 7), отримаємо

7364= 7х83 + 3х82 + 6х81 + 4х80 = 382810

Ви мабуть догадались що нижній індекс відображає основу системи зчислення. Зверніть увагу, що ступінь, в яку возводиться основа, на одиницю менше номера відповідного розряду. Так, 7 стоїть в четвертому розряді восьмикратного числа, а множиться на основу (8) в третій степені. (підчеркнуто)

Застосування десяткової системи зчислення допускається в всіх компютерних мовах, тому що вона привична і зручна для людини – програміста. А для збереження передачі інформації в середині ЕВМ використовується двійкова система, двійкові (бінарні) коди. Такі коди відрізняються високою надійністю, оскільки їх символи (нуль і один) співставимі з легко розрізняємим станом “Ні” і “Так” матеріальних обєктів.

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

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

Ітак, причина застосування двійкової системи – надійність, і простота технічної реалізації. Але як говориться що за все потрібно платити. Памятаєте механічний важіль? Виграється в стилі а програється в відстані.  А ось збільшується кількість розрядів для відображення чисел. Так однорозрядне десяткове число 9, в двійковому коді займе уже чотири розряди: 1001. Різко збільшується кількість проводів в лініях звязку, шинах компютера.

Наприклад, для адресації 64 К потрібно 64 Кбит адресів при байтовій організації памяті, а це 16 двійкових розрядів:

64 Кбит =  65 536 = 216.

А для 64м – 64 Мбіт – 26 розрядів:

64 Мбіт = 67 108 864 = 226.

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

1 + 1= 2;  

… 8 + 1 = 9;  

9 + 1 = 10;  

… 98 + 1 = 99;  

99 + 1 = 100.

Аналогічно в двійковій

1+ 1= 102 (210);   10+ 1= 112 (310);

11+ 1= 1002 (410);  

11112 (1510) + 1=100002 (1610)

Множення числа на основу призводить до додавання нуля зліва. Так вираз 10х10=100, справедливий для любої арифметичної системи зчислення. Для десяткової це “два на два дорівнює чотири”.

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

00001111= 0х27 + 0х26 + 0х25 + 0х24 + 1х23 + 1х22 + 1х21 + 1х20  = 1510

10101010= 1х17 + 0х26 + 1х25 + 0х24 + 1х23 + 0х22 + 1х21 + 0х20 = 170

11110000= 1х27 + 1х26 + 1х25 + 1х24 + 0х23 + 0х22 + 0х21 + 0х20 = 24010

11111111= 1х27 + 1х26 + 1х25 + 1х24 + 1х23 + 1х22 + 1х21 + 1х20 = 25510

Розряди з нулями можна було просто опустити

10101010227 + 25 + 23+ 21 = 17010.

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

Якщо довжина слова – 2 байта (16 бит), то 16 – ти розрядне число 1 слід записувати так: 0000000000000001 (пятнадцять нулів і одна одиниця). Деколи для наочності, байти розділяють пробілами: 00000010 00011101 1010010 00000000. Це записано 4 – х байтове (32–х розрядне) двійкове слово. В десятковій системі воно рівне

225 + 220 + 219 + 218 + 216 + 215+ 213+ 210+ 29= 35497472.

Девять одиниць в числі — девять доданків. Переврити цей результат кожен з вас зможе в програмі “Калькулятор”, яка входить в склад стандартних додатків Windows, в режимі “інженерний”.

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

Для прикладу зробимо перевод двійкового чотирьохрозрядного коду (полубайта) 1101;  

1101

1х2+1=3

3х2+0=6

6х2+1=13

Для переводу із десяткової системи в двійкову можна робити цепочку ділення на два і справа на ліво записувати остатки.  Проведемо переведення в двійкову систему десяткового числа наприклад 13

13:2=6 + остаток 1

6:2=3 + остаток 01

3:2=1 + остаток 101 

1:2=0 + остаток 11012=1310

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *