Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теор-информ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.58 Mб
Скачать

Контрольні запитання

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

  2. Які типи систем числення ви знаєте?

  3. Як проводять додавання і віднімання чисел у двійковій системі числення?

  4. Що таке основа позиційної системи числення?

  5. У чому полягає проблема вибору системи числення для подання чисел у пам'яті комп'ютера?

  6. За яким правилом переводяться числа в десяткову систему числення?

Лабораторна робота № 2 Представлення даних у пам'яті електронно-обчислювальної машини (еом)

Мета роботи: оволодіти способами представлення інформації в пам’яті ЕОМ.

Теоретичні відомості

Для представлення інформації в пам'яті ЕОМ використовується двійковий спосіб кодування.

Елементарна комірка пам'яті ЕОМ має довжину 8 біт (байт). Кожен байт має свій номер (його називають адресою). Найбільшу послідовність біт, що ЕОМ може обробляти як єдине ціле, називають машинним словом. Довжина машинного слова залежить від розрядності процесора і може бути рівною 16, 32 бітам і т.д.

Для кодування символів досить одного байта. При цьому можна представити 256 символів (з десятковими кодами від 0 до 255). Набір символів персональних ЕОМ IBM PC найчастіше є розширенням коду ASCII (American Standard Code for Information Interchange — стандартний американський код для обміну інформацією).

У деяких випадках при представленні в пам'яті ЕОМ чисел використовується змішана двоїчно-десяткова система числення, де для збереження кожного десяткового знака потрібний напівбайт (4 біти) і десяткові цифри від 0 до 9 представляються відповідними двійковими числами від 0000 до 1001. Наприклад, упакований десятковий формат, призначений для збереження цілих чисел з 18-ю значущими цифрами і займає в пам'яті 10 байт (старший з яких знаковий), використовує саме цей варіант.

Інший спосіб представлення цілих чисел — додатковий код. Діапазон значень величин залежить від кількості біт пам'яті, відведених для їхнього збереження. Наприклад, величини типу Integer (усі назви типів даних тут і нижче представлені в тому вигляді, у якому вони прийняті в мові програмування Turbo Pascal). В інших мовах такі типи даних теж є, але можуть мати інші назви лежать у діапазоні від –32768 (–215) до 32767 (215–1) і для їхнього збереження вигляділяється 2 байти; типу LongInt — у діапазоні від –231 до 231–1 і розміщуються в 4 байтах; типу Word — у діапазоні від 0 до 65535 (216–1) (використовується 2 байти) і т.д.

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

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

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

1

0

1

1

0

1

0

0

0

1

1

1

0

0

1

Додатковий код позитивного числа збігається з його прямим кодом. Прямий код цілого числа може бути отриманий у такий спосіб: число переводиться в двійкову систему числення, а потім його двійковий запис ліворуч доповнюють такою кількістю незначних нулів, скільки вимагає тип даних, до якого належить число. Наприклад, якщо число 37(10) = 100101(2) оголошено величиною типу Integer, то його прямим кодом буде 0000000000100101, а якщо величиною типу LongInt, те його прямий код буде 00000000000000000000000000100101. Для більш компактного запису частіше використовують шістнадцятирічний код. Отримані коди можна переписати відповідно як 0025(16) і 00000025(16).

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

1) записати прямий код модуля числа;

2) інвертувати його (замінити одиниці нулями, нулі — одиницями);

3) додати до інверсного коду одиницю.

Наприклад, запишемо додатковий код числа (–37), інтерпретуючи його як величину типу LongInt:

1) прямий код числа 37 є 00000000000000000000000000100101;

2) інверсний код 11111111111111111111111111011010;

3) додатковий код 11111111111111111111111111011011 або FFFFFFDB(16).

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

1) відняти з коду числа 1;

2) інвертувати код;

3) перевести в десяткову систему числення. Отримане число записати зі знаком мінус.

Приклади. Запишемо числа, що відповідають додатковим кодам:

а) 0000000000010111. Оскільки в старшому розряді записаний нуль, то результат буде позитивним. Це код числа 23.

б) 1111111111000000. Тут записаний код негативного числа. Виконуємо алгоритм:

1) 1111111111000000(2) – 1(2) = 1111111110111111(2); 2) 0000000001000000; 3) 1000000(2) = 64(10).

Відповідь: –64.

У табл. 1 наведено перші 16 натуральних чисел, записаних в десятковій, двійковій, вісімковій та шістнадцятковій системах числення.