В комп’ютерних науках знаковий біт або знаковий розряд (англ. sign bit) це біт, що позначає знак числа. Знаковий біт мають лише числові типи зі знаком, він незмінно розташований у позиції найстаршого біта, у певних контекстах термін «знаковий біт» вживають у сенсі «найстарший біт». Зазвичай, якщо знаковий біт дорівнює 0, число невід’ємне (додатне або нуль), а якщо знаковий біт 1, тоді число від’ємне. Такої нотації знаку числа дотримуються найбільш поширені в обчислювальній техніці прямий (англ. sign-and-magnitude), обернений (англ. one's complement) та доповняльний (англ. two's complement) коди чисел.
У схемах обробки чисел з рухомою комою, на відміну від схем з фіксованою комою, під час представлення чисел потрібні два знакові розряди: один — для представлення знака мантиси, інший — для представлення знака порядку. Якщо використовується модифікований зворотний і доповнювальний код знак числа також зображається як дворозрядний код «00», у разі невід'ємних чисел, і як код «11» — у разі від'ємних чисел. Це дає можливість легко визначати ситуацію, за якої відбулося переповнення розрядної сітки машини (ознакою переповнення є наявність коду «01» або коду «10» у знаковому розряді).
Під час виконання операцій додавання (віднімання) знак результату виходить автоматично, оскільки в операції беруть участь не самі числа, а їх коди (включаючи код знаку). Під час виконання операцій множення (ділення) знак результату визначається сумуванням кодів знакового розряду множеного і множника (діленого та дільника) по mod 2.[]
Діапазон представлення чисел зі знаком
Оскільки старший розряд числа відповідає за знак, лише n-1 розрядів можуть бути використані як цифрові розряди числа. Таким чином, однобайтові числа зі знаком мають лише 7 цифрових бітів, двобайтові числа мають, відповідно 15 цифрових бітів і т. д. У прямому та оберненому кодах діапазон представлення чисел розташовується симетрично відносно нуля, тобто кількість від'ємних чисел дорівнює кількості додатних чисел. Для прикладу, однобайтовий прямий та обернений коди можуть представити числа в діапазоні -127...+127. У цих кодах має місце так званий «нуль зі знаком», тобто різні представлення для чисел «плюс нуль» і «мінус нуль», останній з яких не відповідає математичній концепції від’ємного числа. В доповняльному коді нуль має лише один код, тому діапазон представлення чисел несиметричний відносно нуля. Так, однобайтовий доповняльний код представляє числа в діапазоні –128...+127.
Зміна знаку числа в різних кодах
У прямому коді знаковий біт позначає знак числа, а цифрові біти містять двійкові цифри числа. Для зміни знаку числа у прямому коді достатньо змінити лише знаковий біт.
+58 = 00111010 –58 = 10111010
В оберненому коді знаковий біт позначає знак числа, а цифрові біти містять цифри числа для додатних чисел та інверсію цифр для від'ємних чисел. Для зміни знаку числа потрібно інвертувати всі біти числа.
+58 = 00111010 –58 = 11000101
У доповняльному коді знаковий біт позначає знак числа, цифрові біти додатного числа містять цифри числа, а від'ємного числа – доповнення до 2n, де n – кількість цифр. На практиці для одержання доповняльного коду числа додають 1 до оберненого коду. Для зміни знаку числа в доповняльному коді потрібно інвертувати всі біти числа і додати одиницю.
+58 = 00111010 11000101 +1 –58 = 11000110
Числа з рухомою комою, такі як формат IEEE, [en], формат VAX і, навіть, формат, використаний в машинах Цузе Z1 і Z3, використовують представлення чисел у прямому коді. Для зміни знаку числа достатньо змінити знаковий біт.
Розширення знаку
Якщо необхідно привести число у доповняльному коді до більш широкого формату, не змінюючи його числового значення (наприклад, з одного байту до двох байтів), то додаткові старші біти повинні бути заповнені копією знакового біту, цей процес називається [en] або розмноженням знаку. Наприклад, однобайтове додатне двійкове число 00111010, розширене до двох байтів, записується в доповняльному коді як 00000000.00111010, а від’ємне число 11000110 як 11111111.11000110.
Процесори сімейства x86 мають спеціальні команди розширення знаку CBW (Convert Byte to Word), CWD та CWDE (Convert Word to Doubleword), CDQ (Convert Doubleword to Quadword)) та універсальну команду MOVSX (Move with Sign-Extension), призначені для автоматичного збільшення формату числа.
Див. також
Примітки
- Ковалюк Т.В. Основи програмування. – 2005.
- David Tarnoff. Computer Organization and Design Fundamentals. – 2011.
- Рудольф Марек. Ассемблер на примерах. – 2005. – C. 46.
Джерела
- Ковалюк Т.В. Основи програмування. — Київ : Видавнича група BHV, 2005. — 384 с. — .
- Рудольф Марек. Ассемблер на примерах. Базовый курс. — СПб : Наука и Техника, 2005. — 240 с. — .
- David Tarnoff. Computer Organization and Design Fundamentals. — 2011. — 432 с. — .
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її . (травень 2019) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V komp yuternih naukah znakovij bit abo znakovij rozryad angl sign bit ce bit sho poznachaye znak chisla Znakovij bit mayut lishe chislovi tipi zi znakom vin nezminno roztashovanij u poziciyi najstarshogo bita u pevnih kontekstah termin znakovij bit vzhivayut u sensi najstarshij bit Zazvichaj yaksho znakovij bit dorivnyuye 0 chislo nevid yemne dodatne abo nul a yaksho znakovij bit 1 todi chislo vid yemne Takoyi notaciyi znaku chisla dotrimuyutsya najbilsh poshireni v obchislyuvalnij tehnici pryamij angl sign and magnitude obernenij angl one s complement ta dopovnyalnij angl two s complement kodi chisel Znakovij bit dvijkovogo chisla U shemah obrobki chisel z ruhomoyu komoyu na vidminu vid shem z fiksovanoyu komoyu pid chas predstavlennya chisel potribni dva znakovi rozryadi odin dlya predstavlennya znaka mantisi inshij dlya predstavlennya znaka poryadku Yaksho vikoristovuyetsya modifikovanij zvorotnij i dopovnyuvalnij kod znak chisla takozh zobrazhayetsya yak dvorozryadnij kod 00 u razi nevid yemnih chisel i yak kod 11 u razi vid yemnih chisel Ce daye mozhlivist legko viznachati situaciyu za yakoyi vidbulosya perepovnennya rozryadnoyi sitki mashini oznakoyu perepovnennya ye nayavnist kodu 01 abo kodu 10 u znakovomu rozryadi Pid chas vikonannya operacij dodavannya vidnimannya znak rezultatu vihodit avtomatichno oskilki v operaciyi berut uchast ne sami chisla a yih kodi vklyuchayuchi kod znaku Pid chas vikonannya operacij mnozhennya dilennya znak rezultatu viznachayetsya sumuvannyam kodiv znakovogo rozryadu mnozhenogo i mnozhnika dilenogo ta dilnika po mod 2 utochniti Diapazon predstavlennya chisel zi znakomOskilki starshij rozryad chisla vidpovidaye za znak lishe n 1 rozryadiv mozhut buti vikoristani yak cifrovi rozryadi chisla Takim chinom odnobajtovi chisla zi znakom mayut lishe 7 cifrovih bitiv dvobajtovi chisla mayut vidpovidno 15 cifrovih bitiv i t d U pryamomu ta obernenomu kodah diapazon predstavlennya chisel roztashovuyetsya simetrichno vidnosno nulya tobto kilkist vid yemnih chisel dorivnyuye kilkosti dodatnih chisel Dlya prikladu odnobajtovij pryamij ta obernenij kodi mozhut predstaviti chisla v diapazoni 127 127 U cih kodah maye misce tak zvanij nul zi znakom tobto rizni predstavlennya dlya chisel plyus nul i minus nul ostannij z yakih ne vidpovidaye matematichnij koncepciyi vid yemnogo chisla V dopovnyalnomu kodi nul maye lishe odin kod tomu diapazon predstavlennya chisel nesimetrichnij vidnosno nulya Tak odnobajtovij dopovnyalnij kod predstavlyaye chisla v diapazoni 128 127 Zmina znaku chisla v riznih kodahU pryamomu kodi znakovij bit poznachaye znak chisla a cifrovi biti mistyat dvijkovi cifri chisla Dlya zmini znaku chisla u pryamomu kodi dostatno zminiti lishe znakovij bit 58 00111010 58 10111010 V obernenomu kodi znakovij bit poznachaye znak chisla a cifrovi biti mistyat cifri chisla dlya dodatnih chisel ta inversiyu cifr dlya vid yemnih chisel Dlya zmini znaku chisla potribno invertuvati vsi biti chisla 58 00111010 58 11000101 U dopovnyalnomu kodi znakovij bit poznachaye znak chisla cifrovi biti dodatnogo chisla mistyat cifri chisla a vid yemnogo chisla dopovnennya do 2n de n kilkist cifr Na praktici dlya oderzhannya dopovnyalnogo kodu chisla dodayut 1 do obernenogo kodu Dlya zmini znaku chisla v dopovnyalnomu kodi potribno invertuvati vsi biti chisla i dodati odinicyu 58 00111010 11000101 1 58 11000110 Chisla z ruhomoyu komoyu taki yak format IEEE en format VAX i navit format vikoristanij v mashinah Cuze Z1 i Z3 vikoristovuyut predstavlennya chisel u pryamomu kodi Dlya zmini znaku chisla dostatno zminiti znakovij bit Rozshirennya znakuYaksho neobhidno privesti chislo u dopovnyalnomu kodi do bilsh shirokogo formatu ne zminyuyuchi jogo chislovogo znachennya napriklad z odnogo bajtu do dvoh bajtiv to dodatkovi starshi biti povinni buti zapovneni kopiyeyu znakovogo bitu cej proces nazivayetsya en abo rozmnozhennyam znaku Napriklad odnobajtove dodatne dvijkove chislo 00111010 rozshirene do dvoh bajtiv zapisuyetsya v dopovnyalnomu kodi yak 00000000 00111010 a vid yemne chislo 11000110 yak 11111111 11000110 Procesori simejstva x86 mayut specialni komandi rozshirennya znaku CBW Convert Byte to Word CWD ta CWDE Convert Word to Doubleword CDQ Convert Doubleword to Quadword ta universalnu komandu MOVSX Move with Sign Extension priznacheni dlya avtomatichnogo zbilshennya formatu chisla Div takozhPredstavlennya chisel zi znakom Pryamij kod Obernenij kod Dopovnyalnij kodPrimitkiKovalyuk T V Osnovi programuvannya 2005 David Tarnoff Computer Organization and Design Fundamentals 2011 Rudolf Marek Assembler na primerah 2005 C 46 DzherelaKovalyuk T V Osnovi programuvannya Kiyiv Vidavnicha grupa BHV 2005 384 s ISBN 966 552 138 1 Rudolf Marek Assembler na primerah Bazovyj kurs SPb Nauka i Tehnika 2005 240 s ISBN 5 94387 232 9 David Tarnoff Computer Organization and Design Fundamentals 2011 432 s ISBN 9781411636903 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno traven 2019