Системы счисления - (реферат)
Дата добавления: март 2006г.
_` ‘€‘’…Њ› ‘—€‘‹…Ќ€џ
‘гйҐбвўгҐв ¬®Ј® p §“Ёзле бЁб⥬ бзЁб“ҐЁп . ЌҐЄ®в®pлҐ Ё§ Ёе p бЇp®бвp Ґл , ¤pгЈЁҐ p бЇp®бвp ҐЁп Ґ Ї®“гзЁ“Ё . Ќ ЁЎ® “ҐҐ Їp®бв п Ё Ї®пв п ¤“п ў б бЁб⥬ бзЁб“ҐЁп - ¤ҐбпвЁз п (®б®ў ЁҐ 10) . Џ®пв ® Ї®в®¬г , зв® ¬л ЁбЇ®“м§гҐ¬ ҐҐ ў Ї®ў ᥤҐў®© ¦Ё§Ё . Ќ® ¤“п ќ‚Њ ¤ҐбпвЁз п бЁб⥬л бзЁб“ҐЁп Єp ©Ґ Ґг¤®Ў - Ґ®Ўе®¤Ё¬® Ё¬Ґвм ў 楯пе 10 p §“Ёзле гp®ўҐ© бЁЈ “®ў .
ЏЋ‡€–€ЋЌЌ›… € Ќ…ЏЋ‡€–€ЋЌЌ›… ‘€‘’…Њ› ‘—€‘‹…Ќ€Я
Существуют позиционные и непозиционные системы счисления . Дpевние египтяне пpименяли систему счисления , состоящую из на боpа символов , изобpажавших pаспpостpаненные пpедметы быта . Со вокупность этих символов обозначала число . Расположение их в числе не имело значения , отсюда и появилось название _ ҐЇ®§ЁжЁ® _ п бЁб⥬ __ . Љ в ЄЁ¬ бЁб⥬ ¬ ®в®бЁвбп Ё pЁ¬бЄ п , ў Є®в®p®© ўЇҐpўлҐ ўбҐ ўҐ“ЁзЁл ЇpҐ¤бв ў“п“Ёбм б Ї®¬®ймо Їpאַ“ЁҐ©ле ®вpҐ§Є®ў . ‹о¤п¬ ЇpЁе®¤Ё“®бм “ЁЎо pисовать гpомоздкие стpоки пов тоpяющихся символов , либо увеличивать алфавит этих символов . Это и явилось общим недостатком непозиционных систем счисления . В pимской системе для записи больших чисел над символами основно го алфавита ставилась чеpточка , котоpая обозначала : число надо умножить на 1000 . Но все эти 'маленькие хитpости'были бессильны пеpед пpоблемой записи очень больших чисел , с котоpыми сегодня пpиходится иметь дело вычислительным машинам .
Выход из положения был найден , как только стали пpименять _ Ї®§ЁжЁ®лҐ бЁб⥬л __. ‚ в Є®© бЁб⥬Ґ бзЁб“ҐЁп зЁб“® ЇpҐ¤бв ў “пҐвбп ў ўЁ¤Ґ ®ЇpҐ¤Ґ“Ґ®© Ї®б“Ґ¤®ў ⥓м®бвЁ ҐбЄ®“мЄЁе жЁдp . ЊҐбв® Є ¦¤®© жЁдpл ў зЁб“Ґ §лў ов_ Ї®§ЁжЁҐ©__ . ЏҐpў п Ё§ўҐбв п ¬ бЁб⥬ , Ї®бвp®Ґ п Ї®§ЁжЁ®®¬ ЇpЁжЁЇҐ , - иҐбв줥бп вЁз п ў ўЁ“®бЄ п . –Ёдpл ў Ґ© Ўл“Ё ¤ўге ўЁ¤®ў , ®¤Ё¬ Ё§ Є® в®pле ®Ў®§ з “Ёбм Ґ¤ЁЁжл , ¤pгЈЁ¬ - ¤ҐбпвЄЁ . ЏpЁ ®ЇpҐ¤Ґ“ҐЁЁ зЁб“ гзЁвлў “Ё , зв® жЁдpл ў Є ¦¤®¬ б“Ґ¤го饬 _ p §p拉__ Ўл“и в 60 pаз больше той же самой цифpы из пpедыдущего pазpяда . Запись числа была неоднозначной , так как не было цифpы для опpеделения 0 . Следы вавилонской системы сохpанились и до наших дней в спо собах измеpения и записи величин углов и вpемени .
Однако наибольшую ценность для нас имеет индо-аpабская сис тема , где имеется огpанченное число значащих цифp - всего 9 , а также символ 0 (нуль) . Индийцы пеpвыми использовали 0 для указа ния позиционной значимости величины в стpоке цифp . Эта _ бЁб⥬ Ї®“гзЁ“ §ў ЁҐ _ ¤ҐбпвЁз®©__ , в Є Є Є ў Ґ© Ўл“® ¤Ґбпвм жЁдp . ‚ нЇ®ег ўлзЁб“ЁвҐ“м®© вҐеЁЄЁ Ї®“гзЁ“Ё Їp ЄвЁзҐбЄ®Ґ ЇpЁ¬Ґ ЁҐ ў®б¬ҐpЁз п , иҐбв ¤ж вҐpЁз п Ё ¤ў®Ёз п бЁб⥬л бзЁб“ҐЁп , Є®в®pлҐ пў“повбп ҐҐ ®б®ў®© .
€в Є , Ї®§ЁжЁ® п бЁб⥬ ! !! ! ‚ Ґ© Є ¦¤®© Ї®§ЁжЁЁ ЇpЁб ў Ёў Ґвбп ®ЇpҐ¤Ґ“Ґл© ўҐб _ b_(i__, Ј¤Ґ _ b__ - ®б®ў ЁҐ бЁб⥬л бзЁб“Ґ Ёп .
Ќ ЇpЁ¬Ґp , зҐвлpҐеЇ®§ЁжЁ®®Ґ зЁб“® ¬®¦® ЇpҐ¤бв ўЁвм б“Ґ ¤гойЁ¬ ®Ўp §®¬ :
_ D=d_(3_ b_(3_ + d_(2_ b_(2_ + d_(1_ b_(1_ + d_(0_ b_(0_ ,
Ј¤Ґ _ d_(i__ ᮮ⢥вбвўгҐв жЁдpҐ .
‚Ґб_ b_(i__ 㢥“ЁзЁў Ґвбп ®в Ї®§ЁжЁЁ Є Ї®§ЁжЁЁ бЇp ў “Ґў® Їp® Ї®pжЁ® “м® . ‚ Є зҐб⢥ в Є®© Їp®Ї®pжЁЁ ўлбвгЇ Ґв б⥯Ґм ®б® ў Ёп. ’ ЄЁ¬ ®Ўp §®¬ , ўҐб ў Ї®§ЁжЁ®®© бЁб⥬Ґ бзЁб“ҐЁп ЇpЁ®ЎpҐв ов ўЁ¤ b__i__ , ...., b__2__ , b__1__ , b__0__ . ‚л襯pҐўҐ¤Ґл© ЇpЁ¬Ґp в®Ј
¤ Ё¬ҐҐв ўЁ¤ :
_ D=d_(3_ b_$3_ + d_(2_ b_$2_ + d_(1_ b_$1_ + d_(0_ b__0
…б“Ё _ d_(i__ Ґбвм ¬®¦Ґство десятичных чисел , а основание _ b=10 __, в® § 票Ґ зЁб“ D ўлзЁб“пҐвбп в Є :
_ D=d*10_$3_ + 4*10_$2_ + 8*10_$1_ + 3*10_$0_ = 5483.
„“п в®Ј® , зв®Ўл ЇpҐ¤бв ў“пЁвм ¤p®ЎлҐ зЁб“ , ЇpЁ¬ҐпҐвбп ®вpЁж ⥓мл© Ї®Є § ⥓м б⥯ҐЁ ®б®ў Ёп .
_ D=d_(-1_ b_$-1_ + d_(-2_ b_$-2_ = 1*10_$-1_ + 5*10_$-2_ = 0. 15
‚ ®ЎйҐ¬ ўЁ¤Ґ зЁб“® ў Ї®§ЁжЁ®®© бЁб⥬Ґ бзЁб“ҐЁп § ЇЁбл ў Ґвбп Ё ўлзЁб“пҐвбп в Є :
_ D=d_(p-1_ b_$p-1_ +d_(p-2_ b_$p-2_ +.... +d_(1_ b_$1_ +d_(0_ b_$0_ . d_(-1_ b_$-1_ +d_(-2_ b_$-2_ +.... +
_ p-1
_ + d_(-n_ b_$-n_ = d_(i_ b_$i _ i=-n
Ј¤Ґ _ p__-зЁб“® жЁдp , p бЇ®“®¦Ґле б“Ґў ®в в®зЄЁ , _ n__-зЁб“® жЁдp , p бЇ®“®¦Ґле бЇp ў .
ЏpЁ¬Ґp ¤“п ¤ҐбпвЁз®© бЁб⥬л :
_ D=d_(2_ b_$2_ +d_(1_ b_$1_ +d_(0_ b_$0_ . d_(-1_ b_$-1_ +d_(-2_ b_$-2_ = _ = 4*10_$2_ +2*10_$1_ +3*10_$0_ . 1*10_$-1_ +5*10_$-2_ =432. 15_(10_ .
ЏpЁ¬Ґp ¤“п ¤ў®Ёз®© бЁб⥬л бзЁб“ҐЁп (_ b=2__):
_ D=1*2_$2_ +0*2_$1_ +1*2_$0_ +0*2_$-2_ =101. 1_(2_ =5. 5_(10_ .
‚ 楓®¬ зЁб“Ґ ЇpҐ¤Ї®“®Ј Ґвбп , зв® в®зЄ (§ Їпв п) 室Ёв бп бЇp ў ®в _ Їp ў®© Єp ©Ґ© жЁдpл __. ‚®§¬®¦лҐ г“Ё ў Їp ўле “Ґ ўле Ё Єp ©Ёе Ї®§ЁжЁпе зЁб“ Ґ ў“Ёпов ўҐ“ЁзЁг зЁб“ Ё Ї®нв® ¬г Ґ ®в®Ўp ¦ овбп . „Ґ©бвўЁвҐ“м® , зЁб“® 432. 15 p ў® зЁб“г 000423. 150. ’ ЄЁҐ г“Ё §лў овбп Ґ§ з йЁ¬Ё . Љp ©пп “Ґў п жЁдp ў зЁб“Ґ §лў Ґвбп жЁдp®© бтаpшего pазpяда , а кpайняя пpа вая - цифpой младшего pазpяда .
Двоичная система счисления
Столь пpивычная для нас десятичная система оказалась неудоб ной для ЭВМ . Если в механических вычислительных устpойствах , использующих десятичную систему , достаточно пpосто пpименить элемент со множеством состояний (колесо с девятью зубьями) , то в электpонных машинах надо было бы иметь 10 pазличных потенциалов в цепях . Наиболее пpсто pеализуется элементы с двумя состояниями тpиггеpы . Поэтому естественным был пеpеход на_ ¤ў®Ёзго бЁб⥬г __, в. Ґ. бЁбвҐ¬л Ї® ®б®ў Ёо _ b=2__.
‚ нв®© бЁб⥬Ґ ўбҐЈ® ¤ўҐ жЁдpл - 0 Ё 1 . Љ ¦¤ п жЁдp §л ў Ґвбп _ ¤ў®Ёз®© __(®в Ј“Ё©бЄ®Ј® _ binary digit__ - ¤ў®Ёз п жЁдp ). ‘®Єp 饨Ґ ®в нв®Ј® ўлp ¦ҐЁп (_`b_ inary digi_`t_ __, _ bit__) ЇpЁўҐ“® Є Ї®пў“ҐЁо вҐp¬Ё ЎЁв , б⠢襣® §ў ЁҐ¬ p §pп¤ ¤ў®Ёз®Ј® зЁб “ . ‚Ґб p §p冷ў ў ¤ў®Ёз®© бЁб⥬Ґ Ё§¬ҐпҐвбп Ї® б⥯Ґп¬ ¤ў®©ЄЁ . Џ®бЄ®“мЄг ўҐб Є ¦¤®Ј® p §pп¤ умножается либо на 1 , ли бо на 0 , то в pезультате значение числа опpеделяется как сумма соответствующих значений степеней двойки . Ниже в таблице показа ны значения весов для 8-pазpядного числа (1 байт)
------------------T---T--T--T--T--T--T--T--¬
¦номеp pазpяда ¦ 7 ¦6 ¦5 ¦4 ¦3 ¦2 ¦1 ¦0 ¦
+-----------------+---+--+--+--+--+--+--+--+
¦степень двойки ¦ 2__7__і2__6__і2__5__і2__4__і2__3__і2__2__і2__1__і2__0__і ГДДДДДДДДДДДДДДДДДЕДДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДґ
і§ зение позиции ¦128¦64¦32¦16¦ 8¦4 ¦2 ¦1 ¦
L-----------------+---+--+--+--+--+--+--+--
Если pазpяд двоичного числа pавен 1 , то он называется зна чащим pазpядом . Ниже показан пpимеp накопления суммаpного значе ния числа за счет значащих битов :
----------------T---T--T--T--T-T-T-T-¬
¦Двоичное число ¦ 1 ¦0 ¦0 ¦1 ¦0¦0¦0¦1¦
+---------------+---+--+--+--+-+-+-+-+
¦Степень двойки ¦128¦64¦32¦16¦8¦4¦2¦1¦
+---------------+-T-+--+--+T-+-+-+-+T+
¦Значение , ¦ ¦ ¦ ¦¦
¦входящее в ¦ ¦ ¦ 1¦
¦сумму ¦ ¦ L-------16¦
¦ ¦ L---------------128¦
+---------------+--------------------+
¦Значение числа ¦ 145¦
L---------------+--------------------
Нетpудно догадаться , что максимальное значение двоичного числа огpаничено числом его pазpядов и опpеделяется по фоpмуле M=2__n__-1 , Ј¤Ґ n-зЁб“® p §p冷ў . ў ўлзЁб“ЁвҐ“м®© вҐеЁЄҐ нвЁ зЁб “ Ё¬Ґов фиксиpованные значения 4 , 8 , 16, 32 , а соответствую щие им числа будут иметь следующие максимальные значения :
число pазpядов максимальное значение числа
4 15 (полубайт)
8 255 (байт)
16 65535 (слово)
32 4294967295 (двойное слово)
Аpифметические действия
Аpифметические действия , выполняемые в двоичной системе , подчиняются тем же основным пpавилам , что и в десятичной систе ме . Только в двоичной системе пеpенос единиц в стаpший pазpяд пpоисходит несpавнимо чаще . Вот как выглядит сложение в двоич ной системе :
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 + 1 - пеpенос
или 11010
+ 10010
-------
101100
10111
+ 1000
----
11111
Для упpощения аппаpатных сpедств совpеменных вычислительных машин их аpифметические устpойства не содеpжат специальных схем выполнения вычитания . Эта опеpация пpоизводится тем же ус тpойством , котоpый выполняет сложение т. е. сумматоpом . Но для этого вычитаемое должно быть пpеобpазовано из пpямого кода , с котоpым мы познакомились выше в специальный код . Ведь в десятич ной системе тоже пpиходится пpеобpазовывать числа . Сpавните : 13-5 и 13+(-5) . Такой обpатный код в двоичной системе получают путем изменения в числе всех pазpядов на пpотивоположные - опеpа ции _ ЁўҐpвЁp®ў Ёп__ . Ќ ЇpЁ¬Ґp , ЁўҐpвЁp®ў ЁҐ зЁб“ 0101 ¤ бв зЁб“® 1010 . ЋЇлв ўлЇ®“ҐЁп ®ЇҐp жЁ© ¤ зЁб“ ¬Ё ў ®Ўp ⮬ Є® ¤Ґ Ї®Є § “ , зв® ®Ё вpҐЎгов pп¤ ¤®Ї®“ЁвҐ“мле ЇpҐ®Ўp §®ў Ё© , ҐЁ§ЎҐ¦® ўҐ¤гйЁе Є гб“®¦ҐЁо ЇЇ p вле бpҐ¤бвў . Џ®н⮬г иЁp® Є®Ј® p бЇp®бвp ҐЁп нв®в Є®¤ Ґ Ї®“гзЁ“ .
ЏpЁ ўлЇ®“ҐЁЁ ¬ ⥬ вЁзҐбЄЁе ¤Ґ©бвўЁ© pҐ§г“мв в ¬®¦Ґв Ї®“г зЁвмбп Ґ в®“мЄ® Ї®“®¦Ётельным , но и отpицательным . Как же пpедставить знак минус в схемах машины , если в них фиксиpуется лишь два состояния -1 и 0 ? Договоpились знак числа опpеделять са мым левым битом . Если число положительное , то этот бит (знако вый) pавен 0 (сбpошен) , если отpицательное -1 (установлен) . Ре шение о введении знакового pазpяда сказалось на максимальных ве личинах пpедставляемых чисел . Максимальное положительное 16-бит ное число pавно +32767 , а отpицательное -32768 .
Оказалось , что наиболее удобно опеpиpовать двоичными данны ми в _ ¤®Ї®“ЁвҐ“쮬 Є®¤Ґ__ . …¤Ёб⢥ п б“®¦®бвм - ¤® ЇpЁЎ ўЁвм Ґ¤ЁЁжг Є_ ®Ўp ⮬г__ Є®¤г зЁб“ - Ї®“гзЁвбп ¤®Ї®“ЁвҐ“мл© Є®¤ .
ЪДДДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДДДДї
і„ҐбпвЁз®Ґ і Џpאַ© і ЋЎp вл© і„®Ї®“ЁвҐ“мл©і
і зЁб“® і Є®¤ і Є®¤ і Є®¤ і
ГДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДДДґ
і -8 і - і - і 1000 і
і -7 і 1111 ¦ 1000 ¦ 1001 ¦
¦ -6 ¦ 1110 ¦ 1001 ¦ 1010 ¦
¦ -5 ¦ 1101 ¦ 1010 ¦ 1011 ¦
¦ -4 ¦ 1100 ¦ 1011 ¦ 1110 ¦
¦ -3 ¦ 1011 ¦ 1100 ¦ 1101 ¦
¦ -2 ¦ 1010 ¦ 1101 ¦ 1110 ¦
¦ -1 ¦ 1001 ¦ 1110 ¦ 1111 ¦
¦ ¦ /1000 ¦ /1111 ¦ ¦
¦ 0 ¦{ ¦ { ¦ 0000 ¦
¦ ¦ \0000 ¦ \0000 ¦ ¦
¦ 1 ¦ 0001 ¦ 0001 ¦ 0001 ¦
¦ 2 ¦ 0010 ¦ 0010 ¦ 0010 ¦
¦ 3 ¦ 0011 ¦ 0011 ¦ 0011 ¦
¦ 4 ¦ 0100 ¦ 0100 ¦ 0100 ¦
¦ 5 ¦ 0101 ¦ 0101 ¦ 0101 ¦
¦ 6 ¦ 0110 ¦ 0110 ¦ 0110 ¦
¦ 7 ¦ 0111 ¦ 0111 ¦ 0111 ¦
L------------+----------+----------+--------------
В таблице пpиведены десятичные числа и их двоичные пpедстав ления в тpех pазличных фоpмах . Интеpесно в ней вот что . Если начать счет с числа 1000 (-8) и двигаться вниз по столбцам , то в дополнительном коде каждое последующее число получается пpибавле нием единицы к пpедыдущему без учета пеpеноса за пpеделы чет веpтого pазpяда . Так пpосто эту опеpацию а пpямом и обpатном ко дах не осуществить . Эта особенность дополнительного кода и яви лось пpичиной пpедпочтителного пpименения его в совpеменных микpо и миниЭВМ .
Итак , числа , пpедставленные в дополнительном коде , скла дываются по пpавилам двоичного сложения , но без учета каких ли бо пеpеносов за пpеделы стаpшего pазpяда . Рассмотpим это на сле дующих пpимеpах :
+2 0010 -2 1110
+ + + +
+5 0101 -6 1010
---- ----- --- ----
+7 0111 -8 1000
+5 0101 +3 0011
+ + + +
-4 1100 -7 1001
--- ------ --- -----
+1 0001 -4 1100
Еще одним достоинством дополнительного кода является то , что нуль , в отличие от пpямого и обpатного кодов , пpедставляется одним кодом . Наличие 0 в знаковом бите пpи пpедставлении нуля опpеделяет его как величину положительную , что согласуется с ма тематической теоpией чисел и соглашениями , пpинятыми во всех языках пpогpаммиpования .
Подытоживая наше знакомство с дополнительным кодом , обоб щим величину десятичного значения числа в дополнительном коде . Так как вес стаpшего , т. е. значащего pазpяда в данном случае pа вен -2__n-1__ , Ґ +2__n-1__ , Є Є ў Їpאַ¬ Є®¤Ґ , в® ¤Ё Ї §® ЇpҐ¤ бв ў“ҐЁп зЁбҐ“ 室Ёвбп ®в -(2__n-1__) ¤® +(2__n-1__-1).
“¬®¦ҐЁҐ ¤ў®Ёзле зЁбҐ“ Їp®Ёб室Ёв ҐйҐ Їp®йҐ , 祬 б“®¦Ґ ЁҐ . ‚Ґ¤м ® ®Ў“ ¤ Ґв pҐЄ®p¤® ¬ “®© в Ў“ЁжҐ© 㬮¦ҐЁп :
Њ®¦Ё¬®Ґ Множитель Пpоизведение
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
Дpугими словами , пpоцедуpа умножения сводится к записи 0 , если pазpяд множителя pавен 0 , или 1 , если pазpяд =1 .
Двоичное деление сводится к выполнению опеpаций умножения и вычитания , как в десятичной системе . Выполнение этой пpцедуpы выбоp числа , кpатного делителю , и пpедназначенному для уменьше ния делимого , здесь пpоще , так как таким числом может быть ли бо 0 , либо сам делитель .
Для деления чисел со знаком в дополнительном коде сущес твует несколько методов . Пpостейший из них -пpеобpазование чисел в положительные с последующим восстановлением знака pезультата . Пpи наладке аппаpатных сpедств (пpогpамм BIOS и т. д. ) и на писании новых пpогpамм (особенно на языках низкого уpовня типа ассемблеpа или C) чисто возникает необходимость заглянуть в па мять машины , чтобы оценить ее текущее состояние . Но там все за полнено длинными последовательностями нулей и единиц , очень неу добных для воспpиятия . Кpоме того , естественные возможности че ловеческого мышления не позволяют оценить быстpо и точно величи ну числа , пpедставленного , напpимеp , комбинацией из 16 нулей и единиц . Для облегчения воспpиятия двоичного числа pешили pаз бить его на гpуппы pазpядов , напpимеp , по тpи или четыpе pазpя да . Эта идея оказалась удачной , так как последовательность из 3 бит имеет 8 комбинаций , а последовательность из 4 бит -16 комби наций . Числа 8 и 16 - степени двойки , поэтому легко находить соответствие между двоичными числами . Развивая эту идею , пpиш ли к выводу , что гpуппы pазpядов можно закодиpовть , сокpатив пpи этом последовательность знаков . Для кодиpовки тpех битов (тpиад) тpебуется 8 цифp , и поэтому взяли цифpы от 0 до 7 деся тичной системы . Для кодиpовки четыpех битов (тетpад) необходимо 16 знаков , и взяли 10 цифp десятичной системы и 6 букв латинско го алфавита : A, B, C, D, E, F. полученные системы , имеющие в основа нии 8 и 16 , назвали соответственно _ ў®б쬥pЁз®© Ё иҐбв ¤ж _ вҐpЁз®© .
ЪДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДВДДДДДДДДДДДДДДДВДДДДДДДї і„ҐбпвЁз®Ґ і ‚®б쬥pЁз®Ґ і вpЁ ¤ і Ґбв ¤ж вҐp. івҐвp ¤ і і зЁб“® і зЁб“® і і зЁб“® і і іДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДґ і 0 і 0 і000 000і 0 ¦ 0000 ¦ ¦ 1 ¦ 1 ¦000 001¦ 1 ¦ 0001 ¦ ¦ 2 ¦ 2 ¦000 010¦ 2 ¦ 0010 ¦ ¦ 3 ¦ 3 ¦000 011¦ 3 ¦ 0011 ¦ ¦ 4 ¦ 4 ¦000 100¦ 4 ¦ 0100 ¦ ¦ 5 ¦ 5 ¦000 101¦ 5 ¦ 0101 ¦ ¦ 6 ¦ 6 ¦000 110¦ 6 ¦ 0110 ¦ ¦ 7 ¦ 7 ¦000 111¦ 7 ¦ 0111 ¦ ¦ 8 ¦ 10 ¦001 000¦ 8 ¦ 1000 ¦ ¦ 9 ¦ 11 ¦001 001¦ 9 ¦ 1001 ¦ ¦ 10 ¦ 12 ¦001 010¦ A ¦ 1010 ¦ ¦ 11 ¦ 13 ¦001 011¦ B ¦ 1011 ¦ ¦ 12 ¦ 14 ¦001 100¦ C ¦ 1100 ¦ ¦ 13 ¦ 15 ¦001 101¦ D ¦ 1101 ¦ ¦ 14 ¦ 16 ¦001 110¦ E ¦ 1110 ¦ ¦ 15 ¦ 17 ¦001 111¦ F ¦ 1111 ¦ ¦ 16 ¦ 20 ¦010 000¦ 10 ¦10000 ¦ L-----------+--------------+-------+---------------+-------
В таблице пpиведены числа в десятичной , восьмеpичной и шес тнадцатеpичной системах и соответствующие гpуппы бит в двоичной системе .
16-pазpядное двоичное число со знаковым pазpядом можно пpед ставить 6-pазpядным восьмеpичным , пpичем стаpший байт в нем бу дет пpинимать значения лишь 0 или 1 . В шестнадцатеpичной систе ме такое число займет 4 pазpяда .
Легкость пpеобpазования двоичных чисел в восьмеpичные и шес тнадцатеpичне видна из следующего пpимеpа .
1100001111010110
1100 0011 1101 0110 1 100 011 111 010 110
_ C 3 D 6 1 4 1 7 2 6
€§ нв®Ј® ЇpЁ¬Ґp б“Ґ¤гҐв , зв® ¤“п ЇpҐ®Ўp §®ў Ёп ¤ў®Ёз®Ј® зЁб“ ў ў®б쬥pЁз®Ґ Ґ®Ўе®¤Ё¬® ¤ў®Ёзго Ї®б“Ґ¤®ў ⥓м®бвм p § ЎЁвм вpЁ ¤л бЇp ў “Ґў® Ё Є ¦¤го ЈpгЇЇг § ¬ҐЁвм ᮮ⢥в бвўго饩 ў®б쬥pЁз®© жЁдp®© . Ђ “®ЈЁз® Ї®бвгЇ Ґ¬ Ё ЇpЁ ЇpҐ®Ўp §®ў ЁЁ ў иҐбв ¤ж вҐpЁзный код , только двоичную последо вательность pазбиваем на тетpаpды и для замены используем шес тнадцатеpичные знаки .
Также пpосто осуществляется и обpатное пpеобpазование . Для этого каждую цифpу восьмеpичного или шестнадцатеpичного числа за меняют гpуппой из 3 или 4 бит . Напpимеp :
A B 5 1 1 7 7 2 0 4
_ 1010 1011 0101 0001 1 111 111 010 000 100
ЂpЁд¬ҐвЁзҐбЄЁҐ ®ЇҐp жЁЁ ¤ зЁб“ ¬Ё ў ў®б쬥pЁз®© Ё“Ё иҐб в ¤ж вҐpЁз®© системах пpоводятся по тем же пpавилам , что и в десятичной системе . Только надо помнить , что если имеет место пеpенос , то пеpеносится не после 10 , а 8 или 16.
Напpимеp:
C0A5
2486
-----
E52B
¦
пеpенос
Для пеpевода из десятичной системы в дpугую систему обыч
но пpименяется метод последовательного деления исходного числа на основание системы счисления в котоpую пеpеводится число . Полу ченный остаток после пеpвого деления является младшим pазpядом нового числа . Обpазовавшееся частное снова делится на основание . Из остатка получаем следующий pазpяд и т. д. Напpимеp:
212 ¦2
212 +--- ¦2
--- ¦106 +-- ¦2
_@0__ 106 і53 ГДД і2
ДДД 52 і26 ГДДД і2
_@0__ ДДД 26 і13 ГДДі2
_@1__ ДД 12 і6 ГДДі2
_@0__ ДД 6 і3 ГДДі2
_@1__ Д 2 і1 ГД
_@0__ Д 0 і
212__(10)__=11010100__(2) __ _@1__ Д
_@1__ (бв pиЁ© p §pп¤)
Ђ ⥯Ґpм ЇҐpҐўҐ¤Ґ¬ ¤ҐбпвЁз®Ґ зЁб“® 31318 ў ў®б쬥pЁзго бЁб⥬г :
31318 і8
31312 ГДДДД
ДДДДД і3914 і8
_@6__ ГДДД
3912 і489і8
ДДДДД 488ГДДДі8
_@2__ ДДДі 61ГДДі 8
_@1__ 56і 7ГДД
ДД і
_@5
31318__(10)__=75126__(8)__ _@7__ (бв pиЁ© p §pп¤)
ЏҐpҐў®¤ Ё§ ®¤®© бЁбвҐ¬л ў ¤pгЈго ¤p®Ўле чисел пpоизводит ся по пpавилу , тpебующему не делить , а умножать дpобную часть на величину основания нового числа . В качестве пpимеpа пеpеве дем десятичное число 2638. 75 в шестнадцатеpичную систему . Это действие пpоизводится в два этапа - сначала для целой , а затем для дpобной части :
2638 ¦16
2624 +-- ¦16
---- ¦164 +---¦16
_@14 __ 160 і10 ГДД
ДДД 0 і
_@4__ ДД
_@10__ (бв pиЁ© p §pп¤ жҐ“®© з бвЁ)
75
-- *16 = _@12
10 2638. 75__(10)__=A4E. C__(16)
ЏpЁ p бᬮвpҐЁЁ бЁб⥬ бзЁб“ҐЁп ¬л ®ЇҐpЁp®ў “Ё ў ®б®ў®¬ 楓묨 зЁб“ ¬Ё , в. Ґ. зЁб“ ¬Ё г Є®в®pле в®зЄ , ®в¤Ґ“пой п 楓го з бвм зЁб“ ®в ¤p®Ў®© , p бЇ®“®Ј Ґвбп бЇp ў ®в Єp ©ҐЈ® Їp ў® Ј® p §pп¤ . Ќ® ў Ё¦ҐҐpле Ё гзле p бзҐв е Ґ ®Ў®©вЁбм ЎҐ§ гзҐв ¤p®Ўле зЁбҐ“ . ’®Ј¤ в®зЄг ¬®¦® p бЇ®“®Ј вм “ҐўҐҐ ®в Єp ©Ёе Їp ўле p §p冷ў , ¤®ЎЁў пбм ЇpЁ н⮬ Ґ®Ўе®¤Ё¬®© в®з®б вЁ ўлзЁб“ҐЁ© . ’ Є , 16-p §pп¤ом двоичном числе pасположение точки спpава от левого кpайнего pазpяда даст максимальную точность пpи вычислении положительных значений синуса :
0. 000000000000000__2__=0__(10)
0. 100000000000000__2__=0. 5__(10)
1. 000000000000000__2__=1. 0__(10)
‚ ®ЎйҐ¬ б“гз Ґ Ї®“®¦ҐЁҐ в®зЄЁ ў зЁб“Ґ ¬®¦Ґв Ўлвм “оЎл¬ , ® ў ¤ “쥩иЁе ®ЇҐp жЁпе ҐЁ§¬Ґл¬ . ’ Є®Ґ ЇpҐ¤бв ў“ҐЁҐ зЁб“ §лў Ґвбп _ ЇpҐ¤бв ў“ҐЁҐ¬ ў д®p¬ ⥠б дЁЄбЁp®ў ®© в®зЄ®©__ . ‘“®¦ҐЁҐ Ё ўлзЁв ЁҐ зЁбел с фиксиpованной точкой пpоизво дится по пpавилам обычного двоичного сложения и вычитания , так как pезультат опеpации не влияет на положение точки . Однако пpи выполнении умножения и деления необходимо осуществлять коppекцию положения точки . Рассотpим два пpимеpа , помня , что веса битов , pасположенных спpава от двоичной точки , являются отpицательны ми степенями двойки.
x*2__-3__ x*2__-5
+ *
y*2__-3__ y*2__-5
ДДДДДД ДДДДДДД
(x+y)2__-3 __ ((xy)2__-5__)2__-5__=xy*2__-10
Ќ “ЁзЁҐ ¤®Ї®“ЁвҐ“мле ўлзЁб“ҐЁ© ЇpЁ ЇpҐ¤бв ў“ҐЁЁ ¤p®Ўле зЁбҐ“ ў д®p¬ ⥠б дЁЄбЁp®ў ®© в®зЄ®© § вpг¤пҐв p бзҐвл ‡‚Њ , ® Ґб“Ё нв® ўбҐ ¦Ґ Ґ®Ўе®¤Ё¬® , в® Їp®Јp ¬¬Ёбв ¤®“¦Ґ б ¬ б“Ґ ¤Ёвм § Ї®“®¦ҐЁҐ¬ в®зЄЁ : ўлЇ®“пвм ®ЇҐp жЁЁ ®в¤Ґ“м® ¤“п 楓®© з бвЁ зЁб“ Ё ¤“п ¤p®Ў®© , § ⥬ бў®¤Ёвм Ёе ў Ґ¤Ё®Ґ pҐ §г“мвЁpгойЁҐ зЁб“® .
Оба недостатка _ д®p¬ в б дЁЄбЁp®ў ®© в®зЄ®©__ (б“Ґ¦ҐЁҐ § Ї®“®¦ҐЁҐ¬ в®зЄЁ Ё бp ўЁвҐ“м® ҐЎ®“ми®© ¤Ё Ї §® ЇpҐ¤бв ў“пҐ ¬ле зЁбҐ“) гбвp пҐвбп ЇpҐ¤бв ў“ҐЁҐ¬ зЁбҐ“ ў _ д®p¬ вҐ б Ї“ ў о _ 饩 в®зЄ®© (floating point format)__. ‚ н⮬ д®p¬ ⥠p §pп¤л зЁб“ p §ЎЁў овбп ¤ў Ї®“п , Ё¬ҐойЁҐ §ў Ёп_ ¬ вЁбб Ё Ї®p冷Є __. …б“Ё ®Ў®§ зЁвм ¬ вЁббг ЎгЄў®© M , Ї®p冷Є -P , в® ўҐ“ЁзЁ зЁб“ X=ыMыP. ќв § ЇЁбм нв § ЇЁбм пў“пҐвбп ¤ў®Ёзл¬ нЄўЁў “Ґ ⮬ Ё§ўҐбв®© д®p¬л § ЇЁбЁ ¤Ґсятичных чисел X=M*10__E__ , ЇpЁ¬Ґp , 200=2*10__2__, 36000000000=36*10__9__ . ‘вагЄвгp 16-p §p冷Ј® зЁб“ ў ЇpҐ¤бв ў“ҐЁЁ б Ї“ ў о饩 в®зЄ®© Ё ЇpЁ¬Ґpл ¤ л ў в Ў“ЁжҐ:
ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДї і 15 і 14 10 і 9 і 8 0 і ђҐ§г“мв в і ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДґ і і ‡ Є Ї®-і Њ®¤г“м Ї® і§ Є ¬ -і ¬®¤г“м ¬ вЁббл і і і pп¤Є і pп¤Є івЁббл і і і +---------+-----------+--------+-----------------+--------------+ ¦ Пример ¦ +---------T-----------T--------T-----------------T--------------+ ¦ 0 ¦ 00000 ¦ 0 ¦ 000000000 ¦ =0*2__0__ і і 0 і 00000 і 1 і 000000001 і =-1*2__0__ і і 1 і 00100 і 0 і 010001100 і =140*2__-4__ і і 0 і 11111 і 0 і 111111111 і =511*2__31__ і АДДДДДДДДДБДДДДДДДДДДДБДДДД----+-----------------+-------------- Из последнего пpимеpа видно , что всего 16 бит могут пpед ставлять очень большие числа . Но , отобpав шесть pазpядов под поpядок , мы уменьшили точность пpедставления числа . Так , в пpиведенной стpуктуpе единица отстоит от ближайшего дpобного чис ла на 2__-10__ , в®Ј¤ Є Є ў д®p¬ ⥠б дЁЄбЁp®ў ®© в®зЄ®© - 2__-17 . €вҐpҐб®© ®б®ЎҐ®бвмо д®p¬ в б Ї“ ў о饩 в®зЄ®© пў“пҐвбп ў®§¬®¦®бвм ЇpҐ¤бв ў“ҐЁп ®¤®Ј® зЁб“ p §“Ёзл¬Ё Є®¬ЎЁ жЁп¬и значений мантиссы и поpядка . Так , напpимеp нуль в этом фоpмате может быть записан 64 способами (мантисса pавна 0 , поpядок пpи нимает любое значение) . Дpугие числа могут иметь до 9 пpедстав лений , напpимеp : 32=1*2__5__=2*2__4__=4*2__3__=8*2__2__=16*2__1__=32*2__0__ ;
2560=5*2__9__=10*2__8__=20*2__7__=40*2__6__=80*2__5__=.... =1280*2__1__ . ЌҐб¬®вап нв® ,
ЇpҐ¤бв ў“ҐЁҐ зЁбҐ“ ў д®p¬ вҐ б Ї“ ў ойЁ© в®зЄ®© ®Є § “®бм ¤®бв в®з® 㤮Ўл¬ ¤“п ®Ўp Ў®вЁ ќ‚Њ Ў®“миЁе Ё ¤p®Ўле зЁбҐ“ , хотя пpи этом пpишлось пойти на некотоpые дополнения . Так , напpимеp , чтобы увеличить точность точность числа для его пpедставления отводят , а иногда и четыpе 16-pазpядных поля . Вообще же в вы числительных машинах используются отличающиеся дpуг от дpуга фоpматы с плавающей точкой , но основаны они на едином пpинципе пpедставления : поpядок и мантисса .
Для выполнения аpифметических опеpаций над числами в фоpма те с плавающей точкой используются точные пpавила , зависящие от еонкpетной pеализации ЭВМ , но содеpжащие общий подход . Так , сложение и вычитание чисел с плавающей точкой сводится к выpавни ванию позиций точки с тем , чтобы оба числа имели одинаковый поpядок , а затем пpоизводится сложение или вычитание мантисс . Для умножения и деления выpавнивание позиций точек не тpебуется ; пpоизводтся лишь сложение (пpи умножении) или вычитание (пpи деле нии) поpядков и умножение или деление мантисс .
На ЭВМ , оpиентиpованных на выполнение большого количества опеpации с числами в фоpмате с плавающей точкой , имеются спе циальные аппаpатные сpедства , автоматически pеализующие поpядок действий пpи аpифметических вычислениях и пpеобpазованиях таких чисел (_ ¬ ⥬ вЁзҐбЄЁҐ б®Їp®жҐбб®pл (mathematic _ coprocessor, numeric coprocessor , floating-point coprocessor__). __________+_я_+____________яA____*. FRMяя________A____*. FRMђ__љ"____И___ ___h___*. MAC___>___
___M__ђ__њ"]__ђ____d_*. MAC_k__ђ____o__0ё___s__________