RSS    

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

p>Оказалось , что наиболее удобно опе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__________

Страницы: 1, 2


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.