Прямий код — спосіб подання двійкових чисел із нерухомою комою в комп'ютерній арифметиці. Переважно використовують для запису невід'ємних чисел. У разі використання прямого коду для чисел як додатних, так і від'ємних, тобто чисел, запис яких передбачає можливість використання знака мінус (знакових чисел), цифрові розряди числа, що зберігаються, доповнюють знаковим розрядом.
Подання числа зі знаком у прямому коді
У записі числа в прямому коді старший розряд (старший біт) оголошують знаковим розрядом (знаковим бітом). Якщо знаковий біт дорівнює 0, число додатне, інакше — від'ємне. В інших розрядах (які називають цифровими розрядами) записується двійкове подання модуля числа.
Функція кодування двійкових чисел (зокрема, цілих чисел та мішаних дробів) у прямому коді має вигляд:
де — номер знакового розряду (знакового біта). Зокрема, при кодуванні правильних двійкових дробів (тобто чисел, які задовольняють нерівність ), і функція кодування набуває вигляду:
Величину числа у прямому коді визначають за такою формулою:
де:
- — номер розряду числа; від'ємне число — номер розряду праворуч від коми; додатне число — номер розряду ліворуч від коми;
- — кількість розрядів праворуч від коми (кількість розрядів дробової частини числа);
- — кількість розрядів ліворуч від коми (кількість розрядів цілої частини числа);
- — цифра в -му розряді;
- — основа системи числення; дорівнює 2 для двійкових чисел, 10 — для десяткових, 16 — для шістнадцяткових тощо;
- — значення знакового розряду (знакового біта);
- — число, що має розрядів праворуч від коми (дробова частина) та розрядів ліворуч (ціла частина); враховуються лише цифрові розряди.
Як видно з останньої формули, знаковий розряд у прямому коді не має розрядної ваги. Під час виконання арифметичних операцій у прямому коді. це призводить до необхідності окремо опрацьовувати знаковий розряду
Приклади
Десяткове число | Двійкове число | Код прямий двійковий 8-розрядний | Примітка |
---|---|---|---|
0 | 0 | 0000 0000 | Додатний нуль |
-0 | -0 | 1000 0000 | Від'ємний нуль |
5 | 101 | 0000 0101 | |
10 | 1010 | 0000 1010 | |
-5 | -101 | 1000 0101 | |
-16 | -10000 | 1001 0000 | |
9/16 | 0.1001 | 0.100 1000 | |
-9/16 | -0.1001 | 1.100 1000 | |
105/128 | 0.1101001 | 0.110 1001 | |
-5/128 | -0.0000101 | 1.000 0101 |
Застосування прямого коду
В інформатиці прямий код використовують переважно для запису невід'ємних цілих чисел. Його легко отримати з подання цілого числа в будь-якій іншій системі числення. Для цього достатньо перевести число в двійкову систему числення, а потім заповнити нулями вільні зліва розряди розрядної сітки машини.
Однак, за використання для чисел зі знаком прямий код має два недоліки:
- у ньому є два варіанти запису числа 0 (наприклад, 00000000 та 10000000 у восьмирозрядному поданні). Друге подання називають «від'ємний нуль»;
- використання прямого коду для подання в пам'яті комп'ютера від'ємних чисел передбачає або виконання арифметичних операцій центральним процесором у прямому коді, або переведення чисел в інше подання (наприклад, доповняльний код) перед виконанням операцій та переведення результатів назад у прямий код (що неефективно).
Виконання арифметичних операцій над числами у прямому коді утруднене: наприклад, навіть для додавання чисел із різними знаками потрібно, крім суматора, мати спеціальний блок-, складність реалізації якого така ж, як і звичайного суматора. Крім того, при виконанні арифметичних операцій потрібно окремо опрацьовувати знаковий розряд, оскільки він не має ваги. Також потрібна обробка «від'ємного нуля». Таким чином, виконання арифметичних операцій над знаковими числами в прямому коді вимагатиме складнішої архітектури центрального процесора і загалом є неефективним.
Значно зручнішим для виконання арифметичних операцій є доповняльний код.
Діапазон
-розрядний прямий код ( цифрових розрядів та один знаковий) дозволяє подавати:
- цілі числа в діапазоні ;
- правильні двійкові дроби в діапазоні .
Див. також
Примітки
Література
- Behrooz Parhami. 2.1. Signed-Magnitude Representation // Computer Arithmetic: Algorithms and Hardware Designs. — New York : Oxford University Press, 2000. — P. 19—21. — .
- Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пиневич М.М. Прикладная теория цифровых автоматов. — К. : Вища школа, 1987. — 375 с.
Ця стаття містить , але походження тверджень у ній через практично повну відсутність . |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pryamij kod sposib podannya dvijkovih chisel iz neruhomoyu komoyu v komp yuternij arifmetici Perevazhno vikoristovuyut dlya zapisu nevid yemnih chisel U razi vikoristannya pryamogo kodu dlya chisel yak dodatnih tak i vid yemnih tobto chisel zapis yakih peredbachaye mozhlivist vikoristannya znaka minus znakovih chisel cifrovi rozryadi chisla sho zberigayutsya dopovnyuyut znakovim rozryadom Podannya chisla zi znakom u pryamomu kodiU zapisi chisla v pryamomu kodi starshij rozryad starshij bit ogoloshuyut znakovim rozryadom znakovim bitom Yaksho znakovij bit dorivnyuye 0 chislo dodatne inakshe vid yemne V inshih rozryadah yaki nazivayut cifrovimi rozryadami zapisuyetsya dvijkove podannya modulya chisla Funkciya koduvannya dvijkovih chisel zokrema cilih chisel ta mishanih drobiv u pryamomu kodi maye viglyad A P P A A 0 2 n A A lt 0 displaystyle A Pi mathrm P begin cases A amp A geqslant 0 2 n A amp A lt 0 end cases de n displaystyle n nomer znakovogo rozryadu znakovogo bita Zokrema pri koduvanni pravilnih dvijkovih drobiv tobto chisel yaki zadovolnyayut nerivnist 1 lt A lt 1 displaystyle 1 lt A lt 1 n 0 displaystyle n 0 i funkciya koduvannya nabuvaye viglyadu A P P A A 0 1 A A lt 0 displaystyle A Pi mathrm P begin cases A amp A geqslant 0 1 A amp A lt 0 end cases Velichinu chisla A displaystyle A u pryamomu kodi viznachayut za takoyu formuloyu A 1 2 a s i g n i k n a i p i displaystyle A 1 2a sign sum i k n a i p i de i displaystyle i nomer rozryadu chisla vid yemne chislo nomer rozryadu pravoruch vid komi dodatne chislo nomer rozryadu livoruch vid komi k displaystyle k kilkist rozryadiv pravoruch vid komi kilkist rozryadiv drobovoyi chastini chisla n displaystyle n kilkist rozryadiv livoruch vid komi kilkist rozryadiv ciloyi chastini chisla a i displaystyle a i cifra v i displaystyle i mu rozryadi p displaystyle p osnova sistemi chislennya dorivnyuye 2 dlya dvijkovih chisel 10 dlya desyatkovih 16 dlya shistnadcyatkovih tosho a s i g n displaystyle a sign znachennya znakovogo rozryadu znakovogo bita A displaystyle A chislo sho maye k displaystyle k rozryadiv pravoruch vid komi drobova chastina ta n displaystyle n rozryadiv livoruch cila chastina vrahovuyutsya lishe cifrovi rozryadi Yak vidno z ostannoyi formuli znakovij rozryad u pryamomu kodi ne maye rozryadnoyi vagi Pid chas vikonannya arifmetichnih operacij u pryamomu kodi ce prizvodit do neobhidnosti okremo opracovuvati znakovij rozryadu Prikladi Desyatkove chislo Dvijkove chislo Kod pryamij dvijkovij 8 rozryadnij Primitka 0 0 0000 0000 Dodatnij nul 0 0 1000 0000 Vid yemnij nul 5 101 0000 0101 10 1010 0000 1010 5 101 1000 0101 16 10000 1001 0000 9 16 0 1001 0 100 1000 9 16 0 1001 1 100 1000 105 128 0 1101001 0 110 1001 5 128 0 0000101 1 000 0101Zastosuvannya pryamogo koduV informatici pryamij kod vikoristovuyut perevazhno dlya zapisu nevid yemnih cilih chisel Jogo legko otrimati z podannya cilogo chisla v bud yakij inshij sistemi chislennya Dlya cogo dostatno perevesti chislo v dvijkovu sistemu chislennya a potim zapovniti nulyami vilni zliva rozryadi rozryadnoyi sitki mashini Odnak za vikoristannya dlya chisel zi znakom pryamij kod maye dva nedoliki u nomu ye dva varianti zapisu chisla 0 napriklad 00000000 ta 10000000 u vosmirozryadnomu podanni Druge podannya nazivayut vid yemnij nul vikoristannya pryamogo kodu dlya podannya v pam yati komp yutera vid yemnih chisel peredbachaye abo vikonannya arifmetichnih operacij centralnim procesorom u pryamomu kodi abo perevedennya chisel v inshe podannya napriklad dopovnyalnij kod pered vikonannyam operacij ta perevedennya rezultativ nazad u pryamij kod sho neefektivno Vikonannya arifmetichnih operacij nad chislami u pryamomu kodi utrudnene napriklad navit dlya dodavannya chisel iz riznimi znakami potribno krim sumatora mati specialnij blok skladnist realizaciyi yakogo taka zh yak i zvichajnogo sumatora Krim togo pri vikonanni arifmetichnih operacij potribno okremo opracovuvati znakovij rozryad oskilki vin ne maye vagi Takozh potribna obrobka vid yemnogo nulya Takim chinom vikonannya arifmetichnih operacij nad znakovimi chislami v pryamomu kodi vimagatime skladnishoyi arhitekturi centralnogo procesora i zagalom ye neefektivnim Znachno zruchnishim dlya vikonannya arifmetichnih operacij ye dopovnyalnij kod Diapazon n 1 displaystyle n 1 rozryadnij pryamij kod n displaystyle n cifrovih rozryadiv ta odin znakovij dozvolyaye podavati cili chisla v diapazoni 2 n 1 2 n 1 displaystyle 2 n 1 2 n 1 pravilni dvijkovi drobi v diapazoni 1 2 n 1 2 n displaystyle 1 2 n 1 2 n Div takozhObernenij kod Dopovnyalnij kod Cile chislo tip danih PrimitkiLiteraturaBehrooz Parhami 2 1 Signed Magnitude Representation Computer Arithmetic Algorithms and Hardware Designs New York Oxford University Press 2000 P 19 21 ISBN 0 19 512583 5 Samofalov K G Romankevich A M Valujskij V N Kanevskij Yu S Pinevich M M Prikladnaya teoriya cifrovyh avtomatov K Visha shkola 1987 375 s Cya stattya mistit perelik posilan ale pohodzhennya tverdzhen u nij zalishayetsya nezrozumilim cherez praktichno povnu vidsutnist vnutrishnotekstovih dzherel vinosok Bud laska dopomozhit polipshiti cyu stattyu peretvorivshi dzherela z pereliku posilan na dzherela vinoski u samomu teksti statti