Научная Петербургская Академия

Системы счисления - (реферат)

Системы счисления - (реферат)

Дата добавления: март 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__________



(C) 2009