Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Прямий код



План:


Введення

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

В англомовній літературі іменується Sign and magnitude method.


1. Подання числа у прямому коді

При запису числа в прямому коді старший розряд є знаковим розрядом. Якщо його значення дорівнює 0 - то число позитивне, якщо 1 - то негативне. В інших розрядах (які називаються цифровими розрядами) записується двійкове подання модуля числа.

Функція кодування двійкових чисел (у тому числі цілих чисел і змішаних дробів) в прямому коді має вигляд:

[A] _ {\ Pi \ Rho} = \ begin {cases} A, & A \ ge 0 \ \ 2 ^ n + A, & A <0 \ end {cases}

де n - Номер знакового розряду. Зокрема, при кодуванні правильних двійкових дробів (тобто чисел -1 <A <1 ), n = 0 і функція кодування приймає вигляд:

[A] _ {\ Pi \ Rho} = \ begin {cases} A, & A \ ge 0 \ \ 1 + A, & A <0 \ end {cases}

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

A = (1 - 2 a_ {sign}) \ sum_ {i =-k} ^ {n} a_i p ^ i

де:

  • a_ {sign} - Значення знакового розряду;
  • число A має k розрядів праворуч від коми (дробова частина) і n розрядів ліворуч (ціла частина), тут враховуються тільки цифрові розряди.

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


1.1. Приклади

 десятковий двійковий 8-розрядний прямий ---- 0 0 00000000 позитивний нуль -0 -0 10000000 негативний нуль 5 101 00000101 10 1010 0000 1010 -5 -101 10000101 -16 -10000 10010000 9/16 0.1001 0.1001000 -9/16 -0.1001 1.1001000 105/128 0.1101001 0.1101001 -5/128 -0.0000101 1.0000101 

2. Застосування прямого коду

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

Однак, у прямого коду є два недоліки:

  • У прямому коді є два варіанти запису числа 0 (наприклад, 00000000 та 10000000 в восьмирозрядного поданні).
  • Використання прямого коду для представлення негативних чисел в пам'яті комп'ютера припускає або виконання арифметичних операцій центральним процесором в прямому коді, або переклад чисел в інше уявлення (наприклад, в додатковий код) перед виконанням операцій і переклад результатів обратно в прямий код (що неефективно).

Виконання арифметичних операцій над числами в прямому коді утруднено: наприклад, навіть для додавання чисел з різними знаками потрібно крім суматора мати спеціальний блок-" вичітатель ", складність реалізації якого така ж, як і звичайного суматора. Крім того, при виконанні арифметичних операцій потрібне особливо обробляти знаковий розряд, так як він не має ваги. Також потрібна обробка " негативного нуля ". Таким чином, виконання арифметичних операцій над числами в прямому коді зажадає складної архітектури центрального процесора і загалом є неефективним.

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


3. Діапазон

(N +1) -Розрядний прямий код ( n цифрових розрядів і один знаковий) дозволяє представляти цілі числа в діапазоні [- (2 ^ n-1); 2 ^ n-1] \, \! .

(N +1) -Розрядний прямий код ( n цифрових розрядів і один знаковий) дозволяє представляти правильні двійкові дроби в діапазоні [- (1 - 2 ^ {-n}); 1 - 2 ^ {-n}] \, \! .


Література

  • Behrooz Parhami 2.1. Signed-Magnitude Representation / / Computer Arithmetic: Algorithms and Hardware Designs. - New York: Oxford University Press, 2000. - P. 19-21. - 510 p. - ISBN 0-19-512583-5
  • Самофалов К.Г., Романкевич А.М., Валуйський В.М., Каневський Ю.С., Піневич М.М. Прикладна теорія цифрових автоматів. - К. : Вища школа, 1987. - 375 с.



Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Прямий кут
Прямий маркетинг
Прямий ефір
Прямий доступ до пам'яті
Код
Код
QR-код
Лінійний код
Код (значення)
© Усі права захищені
написати до нас