Смекни!
smekni.com

Системы счисления

  1. Происхождениеи история развитиясистем счисления

1.1 Границы счета


Наранних ступеняхразвития обществалюди почти неумели считать.Они отличалидруг от другасовокупностидвух и трехпредметов;всякая совокупность,содержавшаябольшее числопредметов,объединяласьв понятии «много».Это был еще несчет, а лишьего зародыш.

Впоследствииспособностьразличать другот друга небольшиесовокупностиразвивалась;возникли словадля обозначенийпонятий «четыре»,«пять», «шесть»,«семь». Последнееслово длительноевремя обозначалотакже неопределеннобольшое количество.Наши пословицысохранилипамять об этойэпохе («семьраз отмерь –один раз отрежь»,«у семи нянекдитя без глазу»,«семь бед –один ответ»и т.д.).

Сусложнениемхозяйственнойдеятельностилюдей понадобилосьвести счет вболее обширныхпределах. Дляэтого человекпользовалсяокружавшимиего предметами,как инструментамисчета: он делалзарубки напалках и надеревьях, завязывалузлы на веревках,складывалкамешки в кучкии т.п. Такой видсчета носитназвание унарнойсистемы счисления,т.е. системасчисления, вкоторой длязаписи числаприменяетсятолько одинвид знаков. Этоудобно, так каксразу визуальноопределяетсяколичествознаков и сопоставляетсяс количествомпредметов,которые этизнаки обозначают.Все мы ходилив первый класси считали тамна счетныхпалочках – этоотзвук тойдалекой эпохи.Кстати, от счетас помощью камешковведут своеначало различныеусовершенствованныеинструменты,как, например,русские счеты,китайские счеты(«сван-пан»),древнеегипетский«абак» (доска,разделеннаяна полосы, кудаклались жетоны).Аналогичныеинструментысуществовалиу многих народов.Более того, влатинском языкепонятие «счет»выражаетсясловом «calculatio»(отсюда нашеслово «калькуляция»);а происходитоно от слова«calculus»,означающего«камешек».

Особоважную рольиграл природныйинструментчеловека – егопальцы. Этотинструментне мог длительнохранить результатсчета, но затовсегда был «подрукой» и отличалсябольшой подвижностью.Язык первобытногочеловека былбеден; жестывозмещалинедостатокслов, и числа,для которыхеще не былоназваний,«показывались»на пальцах.

Поэтому,вполне естественно,что вновь возникавшиеназвания «больших»чисел частостроились наоснове числа10 – по количествупальцев наруках; у некоторыхнародов возникалитакже названиячисел на основечисла 5 – поколичествупальцев наодной руке илина основе числа20 – по количествупальцев наруках и ногах.

Напервых порахрасширениезапаса чиселпроисходиломедленно. Сначалалюди овладелисчетом в пределахнесколькихдесятков и лишьпозднее дошлидо сотни. У многихнародов число40 долгое времябыло пределомсчета и названиемнеопределеннобольшого количества.В русском языкеслово «сороконожка»имеет смысл«многоножка»;выражение«сорок сороков»означало встарину число,превосходящеевсякое воображение.

Наследующейступени счетдостигаетнового предела:десяти десятков,и создаетсяназвание длячисла 100. Вместес тем слово«сто» приобретаетсмысл неопределеннобольшого числа.Такой же смыслприобретаютпотом последовательночисла тысяча,десять тысяч(в старину эточисло называлось«тьма»), миллион.

Насовременномэтапе границысчета определенытермином«бесконечность»,который необозначаеткакое либоконкретноечисло.


1.2 Десятичнаясистема счисления


Всовременномрусском языке,а также в языкахдругих народовназвания всехчисел до миллионасоставляютсяиз 37 слов, обозначающихчисла 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50, 60, 70, 80, 90,100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 (например,восемьсотпятнадцатьтысяч тристадевяносточетыре). В своюочередь названияэтих 37 чисел,как правило,образованыиз названийчисел первогодесятка (1, 2, 3, 4, 5, 6,7, 8, 9) и чисел 10, 100, 1000(например, 18 =восемь на десять,30 = тридесятьи т.д.). В основеэтого словообразованиялежит числодесять, и поэтомунаша системанаименованийназываетсядесятичнойсистемой счисления.

Изупомянутогоправила в разныхязыках имеютсяразличныеисключения,объясняющиесяисторическимиособенностямиразвития счета.В русском языкеединственнымисключениемявляется наименование«сорок». Этоисключениеможно поставитьв связь с тем,что число 40 игралонекогда особуюроль, означаянеопределеннобольшое количество.

Втюркских языках(узбекском,казахском,татарском,башкирском,турецком и др.)исключениесоставляютнаименованиячисел 20, 30, 40, 50, тогдакак названиячисел 60, 70, 80, 90 образованыиз наименованийдля 6, 7, 8, 9. Во французскомязыке сохранилисьнедесятичныеназвания чисел20 и 80, причем 80именуетсяquatrevingt,т.е. «четыредвадцать».Здесь мы имеемостаток древнегодвадцатеричногосчисления (почислу пальцевна руках и ногах).В латинскомязыке наименованиечисла 20 тоженедесятичное(viginti).Наименованиячисел 18 и 19 образованыиз названия20 с помощьювычитания: 20–2и 20–1 (duodeviginti,undeviginti,т.е. «два отдвадцати»,«один от двадцати»).


1.3 Развитие понятиячисла


Присчете отдельныхпредметовединица естьнаименьшеечисло; делитьее на доли ненужно, а частои невозможно(при счете камнейприбавлениек двум камнямполовины третьегодает три камня,а не два с половиной).Однако делитьединицу на долиприходитсяуже при грубыхизмеренияхвеличин, напримерпри измерениидлины шагами(два с половинойшага и т.д.). Поэтомууже в отдаленныеэпохи создалосьпонятие дробногочисла.

Так,в вавилонскойсистеме мервеса (и денег)1 талант составлял60 мин, а одна мина– 60 шекелей.Соответственнос этим в вавилонскойматематикешироко употреблялисьшестидесятиричныедроби. В древнеримскойвесовой (и денежной)системе 1 ассделился на 12унций; сообразнос этим римлянепользовалисьдвенадцатиричнымидробями.

Наши«обыкновенныедроби» широкоупотреблялисьдревними грекамии индийцами.Правила действийс дробями, изложенныеиндийскимученым Брамагуптой(VIIIвек н.э.), лишьнемногим отличаютсяот наших. Нашазапись дробейтоже совпадаетс индийской;только дробнойчерты индийцыне писали; грекизаписывалисверху знаменатель,а снизу числитель.

Индийскойобозначениедробей и правиладействий надними были усвоеныв IXвеке в мусульманскихстранах благодаряузбекскомуученому МухаммедуХорземскому(аль-Хваризми).Они были перенесеныв ЗападнуюЕвропу итальянскимкупцом и ученымЛеонардо Фибоначчииз Пизы (XIIIвек).

Нарядус «обыкновенными»дробями до XVIIвека применялись(преимущественнов астрономии)шестидесятиричныедроби. Они быливытесненыдесятичнымидробями, введеннымиголландскимкупцом и выдающимсяинженером-ученымСимоном Стевином(1548 - 1620).

Вдальнейшемоказалосьнеобходимымеще большерасширитьпонятие числа;последовательнопоявились числаиррациональные,отрицательныеи комплексные.

Довольно позднок семье чиселприсоединилсянуль. Первоначальнослово «нуль»означало отсутствиечисла (буквальныйсмысл латинскогослова nullum– «ничто»). Длятого чтобы это«ничто» считатьчислом, появилисьоснования лишьв связи с рассмотрениемотрицательныхчисел.

1.4 Системынумерациинекоторыхнародов


1.4.1 Древнегреческаянумерация


Вдревнейшеевремя в Грециибыла распространенат.н. аттическаянумерация.Числа 1, 2, 3, 4 обозначалисьчерточками

,
,
,
.Число 5 записывалосьзнаком
(древнее начертаниебуквы «пи», скоторой начинаетсяслово «пенте»– пять); числа6, 7, 8, 9 обозначались
,
,
,
.Число 10 обозначалось
(начальнойбуквой слова«дека» – десять).Числа 100, 1000 и 10000обозначались
,
,
.Числа 50, 500, 5000 обозначалиськомбинациямизнаков 5 и 10, 5 и100, 5 и 1000. Общую записьчисел в аттическойнумерациииллюстрируетпример 1.1.

Пример1.1 Записьчисел в аттическойсистеме счисления


,

,

,

.

Втретьем векедо н.э. аттическаянумерация былавытеснена такназываемойионийскойсистемой.В ней числа 1 –9 обозначалисьпервыми девятьюбуквами алфавита;числа 10, 20, 30, … , 90 –следующимидевятью буквами;числа 100, 200, … , 900 –последнимидевятью буквами.


Таблица1.1 Обозначениечисел в ионийскойсистеме нумерации


Обозна-

Чение

Название Значе-ние Обозна-чение Название Значе-ние Обозна-чение Назва-ние Значе-ние

Альфа 1

Йота 10

Ро 100

Бета 2

Каппа 20

Сигма 200

Гамма 3

Лямбда

30

Тау 300

Дельта 4

Мю 40

Ипсилон

400

Эпсилон

5

Ню 50

Фи 500

Фауб 6

Кси 60

Хи 600

Дзета 7

Омикрон 70

Пси 700

Эта 8

Пи 80

Омега 800

Тэта 9
Коппа 90
Сампи 900

Следуетотметить, чтобуквы «фау»,«коппа» и «сампи»отсутствуютв современномгреческомалфавите.

Дляобозначениятысяч и десятковтысяч пользовалисьтеми же цифрамис добавлениемособого значка` сбоку.

Для отличияцифр от букв,составлявшихслова, писаличерточки надцифрами. Обозначениечисел в ионийскойнумерациипредставленыв таблице 1.1, апримеры написанияразличных чиселв примере 1.2.


Пример1.2 Записьчисел в ионийскойсистеме счисления


,

,

,

,

.

Такую жеалфавитнуюнумерацию имелив древностиевреи, арабыи многие другиенароды БлижнегоВостока.


1.4.2 Славянскаянумерация


Южныеи восточныеславянскиенароды длязаписи чиселпользовалисьалфавитнойнумерацией.У одних славянскихнародов числовыезначения буквустановилисьв порядке славянскогоалфавита, удругих же (втом числе урусских) рольцифр игралине все буквы,а только те,которые имеютсяв греческомалфавите. Надбуквой, обозначавшейцифру, ставилсяспециальныйзначок:

(«титло»).

Таблица1.2 Обозначениечисел в древнеславянскойсистеме нумерации


Обозна-чение Название Значе-ние Обозна-чение Название Значе-ние Обозна-чение Назва-ние Значе-ние

Аз 1

И 10

Рцы 100

Веди 2

Како 20

Слово 200

Глаголь 3

Люди 30

Твердо 300

Добро 4

Мыслите 40

Ук 400

Есть 5

Наш 50

Ферт 500

Зело 6

Кси 60

Хер 600

Земля 7

Он 70

Пси 700

Иже 8

Покой 80

Омега 800

Фита 9

Червь 90

Цы 900

В Россииславянскаянумерациясохраниласьдо конца XVIIвека. При ПетреIвозобладалатак называемая«арабскаянумерация»,которой мыпользуемсяи сейчас. Славянскаянумерациясохраняласьтолько в богослужебныхкнигах. В таблице1.2 приведеныславянскиецифры.

При записичисел, больших10, цифры писалисьслева направов порядке убываниядесятичныхразрядов (однакоиногда длячисел от 11 до19 единицы записывалисьранее десяти).Для обозначениятысяч передчислом их (слевавнизу) ставилсяособый знак

.

Пример 1.3иллюстрируетнаписание чиселв славянскойсистеме нумерации.


Пример1.3 Записьчисел в древнеславянскойсистеме счисления


,

,

,

.

1.4.3 Римскаянумерация


Древниеримляне пользовалисьнумерацией,которая сохраняетсядо настоящеговремени подименем «римскойнумерации».Мы пользуемсяей для обозначениявеков, юбилейныхдат, наименованиясъездов иконференций,для нумерацииглав книги илистроф стихотворения.

Впозднейшемсвоем видеримские цифрывыглядят так:

,
,
,
,
,
,
.

Вримской нумерацииявственносказываютсяследы пятиричнойсистемы счисления.В языке же римлян(латинском)никаких следовпятиричнойсистемы нет.Значит, этицифры былизаимствованыримлянами удругого народа(предположительноу этрусков).

Всецелые числа(до 5000) записываютсяс помощью повторениявышеприведенныхцифр. При этом,если большаяцифра стоитперед меньшей,то они складываются,если же меньшаястоит передбольшей (в этомслучае она неможет повторяться),то меньшаявычитаетсяиз большей.Подряд однаи та же цифраставится неболее трех раз.Рассмотримпримеры.


Пример1.4 Записьчисел римскимицифрами


,

,

,

.

Выполнениеарифметическихдействий надмногозначнымичислами в этойзаписи оченьгромоздко итрудно. Тем неменее римскаянумерацияпреобладалав Италии доXIIIвека, а в другихстранах ЗападнойЕвропы - до XVIвека.


1.4.4 Вавилонскаяпоместнаянумерация


Вдревнем Вавилонепримерно за40 веков до нашеговремени создаласьпоместная(позиционная)нумерация,т.е. такой способизображениячисел, при которомодна и та жецифра можетобозначатьразные числа,смотря по месту,занимаемомуэтой цифрой.Наша теперешняянумерация -тоже поместная,однако в вавилонскойпоместнойнумерации туроль, которуюиграет у насчисло 10, игралочисло 60, и потомуэту нумерациюназываютшестидесятиричной.Числа, меньшие60, обозначалисьс помощью двухзнаков: дляединицы

и для десятка
.Они имеликлинообразныйвид, так каквавилонянеписали на глиняныхдощечках палочкамитреугольнойформы. Эти знакиповторялисьнужное числораз. При отсутствиипромежуточногоразряда применялсязнак
.Запись чиселдо 60 показанав примере 1.5. Способобозначениячисел, больших60 сведен в таблицу1.3.

Пример1.5 Записьвавилонскойклинописьючисел до 60


,


,

,

.

Таблица1.3 Записьвавилонскойклинописьючисел, больших60


Обозначение Значение Способобразования

302

1295

3725

7203


Шестидесятиричнаязапись целыхчисел не получилараспространенияза пределамиассиро-вавилонскогоцарства, ношестидесятиричныедроби прониклидалеко за этипределы: в страныСреднего Востока,Средней Азии,в СевернуюАфрику и ЗападнуюЕвропу. Онишироко применялись,особенно вастрономии,вплоть до изобретениядесятичныхдробей. Следышестидесятиричныхдробей сохраняютсяи поныне в деленииуглового идугового градуса(а также часа)на 60 минут и минутына 60 секунд.


1.4.5 Индийскаяпоместнаянумерация


В различныхобластях Индиисуществовалиразнообразныесистемы нумерации.Одна из нихраспространиласьпо всему мируи в настоящеевремя являетсяобщепринятой.В ней цифрыимели вид начальныхбукв соответствующихчислительныхна древнеиндийскомязыке – санскрите(алфавит «деванагари»).

Первоначальноэтими знакамипредставлялисьчисла 1, 2, 3, … , 9, 10, 20,30, … , 90, 100, 1000; с их помощьюзаписывалисьдругие числа.Впоследствиибыл введенособый знак(жирная точкаили кружок) дляуказания пустующегоразряда; знакидля чисел, больших9, вышли из употребления,и нумерация«деванагари»превратиласьв десятичнуюпоместнуюсистему. К серединеVIIIвека позиционнаясистема нумерацииполучает вИндии широкоеприменение.Примерно в этовремя она проникаети в другие страны(Индокитай,Китай, Тибет,в Иран и др.).Решающую рольв распространениииндийскойнумерации варабских странахсыграло руководство,составленноев начале IXвека узбекскимученым Мухаммедомиз Хорезма(аль-Хваризми).Оно было переведенов ЗападнойЕвропе на латинскийязык в XIIвеке. В XIIIвеке индийскаянумерацияполучает преобладаниев Италии. В другихстранах ЗападнойЕвропы онаутверждаетсяв XVIвеке. Европейцы,заимствовавшиеиндийскуюнумерацию отарабов, называлиее «арабской».Это историческинеправильноеназвание удерживаетсяи поныне.

Из арабскогоязыка заимствованои слово «цифра»(по-арабски«сыфр»).

Формаиндийских цифрпретерпеваламногообразныеизменения. Таформа, в котороймы их пишемсейчас, установиласьв XVIвеке.


2 Основныепонятия и определения


Выше мы говорилио системахсчисления, невдаваясь вподробностиэтого понятия.Каково же научноеопределениесистемы счисления?

Системойсчисленияназывают системуприемов и правил,позволяющихустанавливатьвзаимно-однозначноесоответствиемежду любымчислом и егопредставлениемв виде совокупностиконечного числасимволов. Множествосимволов,используемыхдля такогопредставления,называют цифрами.

Взависимостиот способаизображениячисел с помощьюцифр системысчисленияделятся напозиционныеи непозиционные.

Внепозиционныхсистемах любоечисло определяетсякак некотораяфункция отчисленныхзначений совокупностицифр, представляющихэто число. Цифрыв непозиционныхсистемах счислениясоответствуютнекоторымфиксированнымчислам. Примернепозиционнойсистемы –рассмотреннаяранее римскаясистема счисления.Дpевние египтянепpименяли системусчисления,состоящую изнабоpа символов,изобpажавшихpаспpостpаненныепpедметы быта.Совокупностьэтих символовобозначалачисло. Расположение их в числе неимело значения,отсюда и появилосьназвание.

Историческипервыми системамисчисления былиименно непозиционныесистемы. Однимиз основныхнедостатковявляется трудностьзаписи большихчисел. Записьбольших чиселв таких системахлибо оченьгромоздка, либоалфавит системычрезвычайновелик.

Ввычислительнойтехнике непозиционныесистемы неприменяются.

Системусчисленияназывают позиционной,если одна и таже цифра можетприниматьразличныечисленныезначения взависимостиот номера разрядаэтой цифры всовокупностицифр, представляющихзаданное число.Пример такойсистемы – арабскаядесятичнаясистема счисления.

Количестваи количественныесоставляющие,существующиереально могутотображатьсяразличнымиспособами. Вобщем случаев позиционнойсистеме счислениячисло N может бытьпредставленокак:

,где: (2.1)

основаниесистемы счисления(целое положительноечисло, равноечислу цифр вданной системе);

– любыецифры из интервалаот нуля до
.

Основаниепозиционнойсистемы счисленияопределяетее название.В вычислительнойтехнике применяютсядвоичная,восьмеричная,десятичнаяи шестнадцатеричнаясистемы. Вдальнейшем,чтобы явноуказать используемуюсистему счисления,будем заключатьчисло в скобкии в нижнем индексеуказыватьоснованиесистемы счисления.

Каждойпозиции в числесоответствуетпозиционный(разрядный)коэффициентили вес.Покажем этона примередесятичногочисла:


Пример2.1 Способобразованиядесятичногочисла


Для десятичнойсистемы соответствиямежду позициейи весом следующее:

(2.2)

вобщем случае:

(2.3)

В настоящеевремя позиционныесистемы счисленияболее широкораспространены,чем непозиционные.Это объясняетсятем, что онипозволяютзаписыватьбольшие числас помощьюсравнительнонебольшогочисла знаков.Еще более важноепреимуществопозиционныхсистем - этопростота илегкость выполненияарифметическихопераций надчислами, записаннымив этих системах.

Вычислительныемашины в принципемогут бытьпостроены влюбой системесчисления. Ностоль привычнаядля нас десятичнаясистема окажетсякрайне неудобной.Если в механическихвычислительныхустройствах,использующихдесятичнуюсистему, достаточнопросто применитьэлемент сомножествомсостояний(колесо с десятьюзубьями), то вэлектронныхмашинах надобыло бы иметь10 различныхпотенциаловв цепях.

Наиболееудобной дляпостроенияЭВМ оказаласьдвоичнаясистема счисления,т.е. системасчисления, вкоторой используютсятолько двецифры: 0 и 1, т.к. стехническойточки зрениясоздать устройствос двумя состояниямипроще, такжеупрощаетсяразличениеэтих состояний.

Для представленияэтих состоянийв цифровыхсистемах достаточноиметь электронныесхемы, которыемогут приниматьдва состояния,четко различающиесязначениемкакой-либоэлектрическойвеличины –потенциалаили тока. Одномуиз значенийэтой величинысоответствуетцифра 0, другому– 1. Относительнаяпростота созданияэлектронныхсхем с двумяэлектрическимисостояниямии привела ктому, что двоичноепредставлениечисел доминируетв современнойцифровой технике.При этом 0 обычнопредставляетсянизким уровнемпотенциала,а 1 – высокимуровнем. Такойспособ представленияназываетсяположительнойлогикой.


3 Двоичнаясистема счисления:основные сведения


3.1 Историявозникновениядвоичной системысчисления


Двоичнаясистема счисления,т.е. система соснованием

,является«минимальной»системой, вкоторой полностьюреализуетсяпринцип позиционностив цифровойформе записичисел. В двоичнойсистеме счислениязначение каждойцифры «по месту»при переходеот младшегоразряда к старшемуувеличиваетсявдвое.

Историяразвития двоичнойсистемы счисления– одна из яркихстраниц в историиарифметики.Официальное«рождение»двоичной арифметикисвязывают сименем Г. В.Лейбница,опубликовавшегостатью, в которойбыли рассмотреныправила выполнениявсех арифметическихопераций наддвоичнымичислами. Доначала тридцатыхгодов XX века двоичнаясистема счисленияоставаласьвне поля зренияприкладнойматематики.Потребностьв созданиинадежных ипростых поконструкциисчетных механическихустройств ипростота выполнениядействий наддвоичнымичислами привелик более глубокомуи активномуизучению особенностейдвоичной системыкак системы,пригодной дляаппаратнойреализации.Первые двоичныемеханическиевычислительныемашины былипостроены воФранции и Германии.Утверждениедвоичной арифметикив качествеобщепринятойосновы приконструированииЭВМ с программнымуправлениемсостоялосьпод несомненнымвлиянием работыА. Бекса, Х. Гольдстайнаи Дж. Фон Нейманао проекте первойЭВМ с хранимойв памяти программой,написаннойв 1946 году. В этойработе наиболееаргументированнообоснованыпричины отказаот десятичнойарифметикии перехода кдвоичной системесчисления какоснове машиннойарифметики.

3.2 Основныепонятия машиннойарифметики


В двоичнойсистеме счисленияиспользуютсятолько двасимвола, чтохорошо согласуетсяс техническимихарактеристикамицифровых схем.Действительноочень удобнопредставлятьотдельныесоставляющиеинформациис помощью двухсостояний:

  • Отверстиеесть или отсутствует(перфолентаили перфокарта);

  • Материалнамагниченили размагничен(магнитныеленты, диски);

  • Уровеньсигнала большойили маленький.

Существуютспециальныетермины, широкоиспользуемыев вычислительнойтехнике: бит,байти слово.

Битомназывают одиндвоичный разряд.Крайний слевабит числа называютстаршимразрядом(он имеет наибольшийвес), крайнийсправа – младшимразрядом(он имеет наименьшийвес).

Восьмибитоваяединица носитназвание байта.

Многие типыЭВМ и дискретныхсистем управленияперерабатываютинформациюпорциями (словами)по 8, 16 или 32 бита(1, 2 и 4 байта). Двоичноеслово, состоящееиз двух байт,показано нарис. 3.1.




Рис.3.1 Бит,байт и слово



4 Взаимныйперевод двоичныхи десятичныхчисел и элементарныедвоичныеарифметическиедействия


4.1 Представлениедвоичных чисели перевод ихв десятичные


Совершенноочевидно, чтодвоичное числопредставляетсяпоследовательностьюнулей и единиц– разрядов. Каки в любой позиционнойсистеме, каждомуразряду присвоенопределенныйвес – показательстепени основаниясистемы. Весапервых 10 позицийпредставленыв таблице 4.1.


Таблица4.1 Веса первыхдесяти позицийдвоичной системысчисления


Позиция 9 8 7 6 5 4 3 2 1 0
Вес 512 256 128 64 32 16 8 4 2 1

Образование


В двоичнойсистеме счислениядаже сравнительнонебольшие числазанимают многопозиций.

Как и вдесятичнойсистеме, в двоичнойсистеме счислениядля отделениядробной частииспользуетсяточка (двоичнаяточка). Каждаяпозиция слеваот этой точкитакже имеетсвой вес – весразряда дробнойчасти числа.Значение весав этом случаеравно основаниюсистемы счисления(т.е. двойке),возведенномув отрицательнуюстепень.

Получитьдесятичноечисло из двоичногочрезвычайнопросто. Согласноформуле 2.3 длядвоичной системысчисленияполучаем:

(4.1)

Пример 4.1иллюстрируетпроцесс получениядесятичногочисла из двоичного.


Пример4.1 Переводдвоичного числа

в десятичное



4.2 Преобразованиедесятичныхчисел в двоичные


Переводиз двоичнойсистемы в десятичнуюнесколькосложнее. Рассмотримнесколькоалгоритмов.


4.2.1 Метод вычитания

Из десятичногочисла вычитаютсянаибольшаявозможнаястепень двойки,в соответствующийразряд двоичногочисла записываетсяединица, еслиразность меньшеследующейстепени двойки,то далее записываетсянуль, а еслибольше записываетсяединица и опятьпроизводитсявычитание, итак до тех пор,пока исходноечисло не уменьшитсядо нуля. В примере4.2 рассматриваетсяперевод десятичногочисла

в двоичное.


Пример4.2 Переводдесятичногочисла

в двоичноеметодом вычитания



4.2.2 Метод деления

Другимметодом являетсятак называемыйметод деления.Он применяетсядля преобразованияцелых чисел.Ниже приведенего алгоритм.

Разделимнацело десятичноечисло на двойку.Если есть остаток,запишем в младшийразряд единицу,а если нет –нуль и сноваразделим результатот первогоделения. Повторимпроцедуру такдо тех пор, покаокончательныйрезультат необнулиться.


Пример4.3 Переводдесятичногочисла

в двоичноеметодом деления


2







148

74

2






1

74

37

2






0

36

18

2






1

18

9

2






0

8

4

2






1

4

2

2






0

2

1

2






0

0 0







1

старшийразряд

(10010101)2=(149)10

 ответ



4.2.3 Метод умножения

И, наконец,метод умножения.Метод применяетсядля преобразованиядесятичныхдробей (чиселменьших единицы).

Числоумножаетсяна 2, если результат1, то в старшийразряд записываетсяединица, еслинет, то нуль.Умножаем на2 дробную частьрезультатаи повторяемпроцедуру. Итак далее дополучениянужной степениточности илидо обнулениярезультата.


Пример4.4 Переводдесятичногочисла

в двоичноеметодом умножения



4.3 Арифметическиедействия наддвоичнымичислами


Арифметикадвоичной системысчисленияоснована наиспользованиитаблиц сложения,вычитания иумножения. Этитаблицы чрезвычайнопросты:


Таблица

сложения

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Таблица

умножения

0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1

Таблица

вычитания

0 0 = 0
1 0 = 1
1 1 = 1
10 1 = 1


4.3.1 Двоичноесложение


Двоичноесложение выполняетсяпо тем же правилам,что и десятичное,с той лишь разницей,что переносв следующийразряд производитьсяпосле того, каксумма достигнетне десяти, адвух.


Пример4.5 Сложениедвоичных чисел

и


+ 101101
111110

010011

– поразряднаясумма без учетапереносов


+ 1011000 – переносы

0010011



1001011

– поразряднаясумма без учетаповторныхпереносов


+ 0100000 – повторныепереносы
1001011

1101011 – окончательныйрезультат

Легкопроизвестипроверку:

,

,

,

.

Пример4.6 Сложениедвоичных чисел

и


+ 110, 1011
10111, 10101

10001, 00011

– поразряднаясумма без учетапереносов


+ 11 1, 1 – переносы
10001, 00011

11100, 01011

– поразряднаясумма без учетаповторныхпереносов


+ 1 ,
– повторныепереносы
11100, 01011

11110, 01011 – окончательныйрезультат

Сложениенесколькихчисел вызываетнекоторыетрудности, таккак в результатепоразрядногосложения могутполучитсяпереносы, превышающиеединицу.


4.3.2 Двоичное вычитание


Вычитаниев двоичнойсистеме выполняетсяаналогичновычитанию вдесятичнойсистеме счисления.При необходимости,когда в некоторомразряде приходитсявычитать единицуиз нуля, занимаетсяединица изследующегостаршего разряда.Если в следующемразряде нуль,то заем делаетсяв ближайшемстаршем разряде,в котором стоитединица. Приэтом следуетпонимать, чтозанимаемаяединица равнадвум единицамданного разряда,т. е. вычитаниевыполняетсяпо следующемуправилу:


Пример4.7 Вычитаниедвоичных чисел

и


11010, 1011
1101, 01111

1101, 00111

Конечно,математическивычитаниевыполнитьнесложно. Однако,если поступатьтаким образом,то к примерув ЭВМ придетсядля выполнениясложения ивычитания иметьдва блока: сумматори вычитатель.Поэтому поступаютследующимобразом: вычитаниеможно представитькак сложениеположительногои отрицательногочисел, необходимотолько подходящеепредставлениедля отрицательногочисла.

Рассмотримчетырехразрядныйдесятичныйсчетчик, какиев автомобилеотсчитываютпройденныйпуть. Пусть онпоказываетчисло 2, есливращать егов обратномнаправлении,то сначалапоявится 1, затем0, после 0 появитсячисло 9999. Сложим,к примеру, 6 сэтим числом:

+ 6
9999

10005


Если пренебречьединицей переносаи считать 9999аналогом –1, тополучим верныйрезультат:

.

Число 9999называетсядесятичнымдополнениемчисла 1.Такимобразом, вдесятичнойсистеме счисленияотрицательныечисла могутбыть представленыв форме десятичногодополнения,а знак минусможно опустить.

Двоичное дополнениечислаопределяетсякак то число,которое будучиприбавленок первоначальномучислу, дасттолько единицупереноса встаршем разряде.


Пример4.8 Двоичноедополнениечисла


+ 010101111 – число
101010001 – двоичноедополнение

1000000000 – сумма

 – единицапереноса


Для получениядвоичногодополнениянеобходимо:

  • получитьобратный код,который образуетсяинвертированиемкаждого бита:

    010101111 – число
    101010000 – обратныйкод
  • прибавитьк обратномукоду единицу,образовавтаким образомдополнительный код:

+ 101010000 – обратныйкод
1

101010001 – дополнительныйкод

Пример4.9 Вычитаниев дополнительномкоде


– обратныйкод,

– дополнительныйкод.

1001012=510(верно).


4.3.3 Двоичноеумножение


Умножениедвух двоичныхчисел выполняетсятак же, как иумножениедесятичных.Сначала получаютсячастичныепроизведенияи затем их суммируютс учетом весасоответствующегоразряда множителя.

Отличительнойособенностьюумножения вдвоичной системесчисленияявляется егопростота,обусловленнаяпростотойтаблицы умножения.В соответствиис ней, каждоечастичноепроизведениеили равно нулю,если в соответствующемразряде множителястоит нуль, илиравно множимому,сдвинутомуна соответствующеечисло разрядов,если в соответствующемразряде множителястоит единица.Таким образом,операция умноженияв двоичнойсистеме сводитсяк операциямсдвига и сложения.

Умножениепроизводится,начиная с младшегоили старшегоразряда множителя,что и определяетнаправлениесдвига. Еслисомножителиимеют дробныечасти, то положениезапятой впроизведенииопределяетсяпо тем же правилам,что и для десятичныхчисел.

Пример4.10 Умножениедвоичных чисел

и



4.3.4 Двоичноеделение


Делениечисел в двоичнойсистеме производитсяаналогичноделению десятичныхчисел. Рассмотримделение двухцелых чисел,так как делимоеи делительвсегда могутбыть приведенык такому видупутем перениесениязапятой в делимоми делителе наодиноаковоечисло разрядови дописываниянеобходимыхнулей. Делениеначинаетсяс того, что отделимого слеваотделяетсяминимальнаягруппа разрядов,которая, рассматриваемаякак число, превышаетили равна делителю.Дальнейшиедействия выполняютсяпо обычнымправилам, причемпоследняя целаяцифра частногополучаетсятогда, когдавсе цифры делимогоисчерпаны.


Пример4.11 Делениедвоичных чисел


1) 18:2

2) 14:4







10010 10
1110 100
10

1001=(9)10


100

11,1=(3,5)10


00

110

00

100

001




100

000

100

10

0



10




00





Такимобразом, выполнениеарифметическихопераций вдвоичной системесчислениядостаточнопросто. Особеннопросто выполнятьоперации сложения,вычитания иумножения.Благодоряэтому, применениедвоичной системыв вычислительныхмашинах позволяетупростить схемыустройств, вкоторых осуществляютсяоперации надчислами.


5 Представлениечисел в ЭВМ,кодирование


5.1 Представлениечисел с фиксированнойи плавающейзапятой


При представлениичисла в двоичномкоде с цифрами0,1 в каждом разрядезаписываютсяцифры 0 или 1. Таккак в ЭВМ «запись»числа осуществляетсяс помощью техническихустройств, тодля представленияего в такойформе необходиморасполагатьустройствамис двумя надежноразличнымисостояниями,которым могутбыть сопоставленызначения 0 или1. Комбинациятаких устройств,число которыхсоответствуетколичествуразрядовзаписываемогочисла, можетбыть использованадля представлениячисел в ЭВМ.

Вкачестве такихустройств,могут бытьиспользованытриггеры. Набортриггеров,предназначенныхдля представлениячисел в ЭВМ, атакже для выполнениянад ними некоторыхлогическихпреобразований,называетсярегистром.Разумеется,число разрядов,отведенноедля записичисла, соответствующеечислу триггеров,в ЭВМ всегдаконечно. Выборколичестваразрядов дляпредставлениячисел в ЭВМявляется однимиз самых ответственныхэтапов конструированиявычислительноймашины и обуславливаетсяцелым рядомтребований,среди которыходно из важнейших– необходимаяточность вычислений.

В ЭВМ применяютсядве основныеформы представлениячисел: полулогарифмическая– с плавающейзапятойи естественная– с фиксированнымположениемзапятой.

При представлениичисел с фиксированнойзапятой положениезапятой закрепляется в определенномместе относительноразрядов числаи сохраняетсянеизменнымдля всех чисел,изображаемыхв данной разряднойсетке. Обычнозапятая фиксируетсяперед старшимразрядом илипосле младшего.В первом случаев разряднойсетке могутбыть представленытолько числа,которые помодулю меньше1, во втором –только целыечисла.

Использованиепредставлениячисел с фиксированнойзапятой позволяетупростить схемымашины, повыситьее быстродействие,но представляетопределенныетрудности припрограммировании.В настоящеевремя представлениечисел с фиксированнойзапятой используетсякак основноетолько в микроконтроллерах.

В универсальныхЭВМ основнымявляетсяпредставлениечисел с плавающейзапятой. Широкийдиапазонпредставлениячисел с плавающей запятой удобендля научныхи инженерныхрасчетов. Дляповышенияточности вычисленийво многих ЭВМпредусмотренавозможностьиспользованияформата двойнойдлины, однакопри этом происходитувеличениезатрат памятина хранениеданных и замедляютсявычисления.

Рассмотримподробнее этидва формата.


5.1.1 Числа сфиксированнойзапятой


Форматдля чисел сзапятой, фиксированнойперед старшимразрядом. Вэтом форматемогут быть сточностью до

представленычисла (правильныедроби) в диапазоне

.

ПервыеЭВМ были машинамис фиксированнойзапятой, причемзапятая фиксироваласьперед старшимразрядом числа.В настоящеевремя, как правило,форму с фиксированнойзапятой применяютдля представленияцелых чисел(запятая фиксированапосле младшегоразряда).

Используютдва вариантапредставленияцелых чисел:со знаком и беззнака. В последнемслучае всеразряды разряднойсетки служатдля представлениямодуля числа.В ЕС ЭВМ применяютсяоба указанныхвариантапредставленияцелых чисел,причем каждыйиз вариантовреализуетсякак в формате32-разрядногомашинного словаэтих машин, таки в формате16-разрядногополуслова.

При выполненииарифметическихдействий надправильнымидробями могутполучаться двоичные числа, по абсолютной величине большеили равныеединице, чтоназываетсяпереполнениемразряднойсетки. Для исключениявозможностипереполненияприходитсямасштабироватьвеличины, участвующиев вычислениях.

Достоинствопредставлениячисел в формес фиксированнойзапятой состоитв простотевыполненияарифметическихопераций.

Недостатки– в необходимостивыбора масштабныхкоэффициентови в низкой точностипредставленияс малыми значениямимодуля (нулив старших разрядахмодуля приводитк уменьшениюколичестваразрядов, занимаемыхзначащей частьюмодуля числа).


5.1.2 Числа сплавающейзапятой


При использованииплавающейзапятой числосостоит из двухчастей: мантиссыm,содержащейзначащиецифры числа,и порядкаp,показывающегостепень, в которуюнадо возвестиоснование числаq, чтобыполученноепри этом число,умноженноена мантиссу,давало истинноезначениепредставляемогочисла:

(5.1)

Мантиссаи порядокпредставляютсяв двоичномкоде. Обычночисло даетсяв нормализованномвиде, когда егомантисса являетсяправильнойдробью, причемпервая значащаяцифра (единица)следует непосредственнопосле запятой:например,

где m=0,1010;p=10;q=2

Порядокуказываетдействительноеположениезапятой в числе.Код в приведенномформате представляетзначение числав полулогарифмическойформе:

.

Точностьпредставлениязначений зависитот количествазначащих цифрмантиссы. Дляповышенияточности числас плавающейзапятой представляютсяв нормализованнойформе, при которойзначение модулямантиссы лежитв пределах

.Признакомнормализованногочисла служитналичие единицыв старшем разрядемодуля мантиссы.В нормализованнойформе могутбыть представленывсе числа изнекоторогодиапазона заисключениемнуля.

Нормализованныедвоичные числас плавающейзапятой представляютзначения модуляв диапазоне:

,

где

– максимальноезначение модуляпорядка.

Так, приp=7

–1=
=63и диапазонпредставлениямодулей нормализованныхчисел:

,

Таким образом,диапазон чисел:

Для расширениядиапазонапредставляемыхчисел прификсированнойдлине разряднойсетки (m+p)в качествеоснованиясистемы счислениявыбирается

.При этом число,представляемоев разряднойсетке, приобретаетзначения
.Нормализованнаямантисса 16-ричногочисла с плавающейзапятой имеетзначения, лежащеев диапазоне
.Признакомнормализациитакого числаявляется наличиехотя бы однойединицы в четырехстарших разрядахмодуля мантиссы.Диапазонпредставлениячисел в этомслучае существеннорасширяется,находясь притом же количестверазрядов впределах от
до
.

5.2 Прямой,обратныйи дополнительныйкоды. Модифицированныйкод


При рассмотренииэлементарныхарифметическихопераций наддвоичнымичислами мы ужекоснулись темыотрицательныхдвоичных чисел.Теперь рассмотримее подробнее.

Для кодирования знака двоичногочисла используетсястарший ("знаковый")разряд (нольсоответствуетплюсу, единица– минусу).

Такая формапредставлениячисла называетсяпрямымкодом.

В ЭВМ прямойкод применяетсятолько дляпредставленияположительныхдвоичных чисел. Для представленияотрицательныхчисел применяетсялибо дополнительный, либо обратныйкод, так какнад отрицательнымичислами в прямомкоде неудобновыполнятьарифметическиеоперации.

Правила дляобразованиядополнительногои обратногокода состоятв следующем:

  • дляобразованиядополнительногокода отрицательногочисла необходимов знаковомразряде поставитьединицу, а всецифровые разрядыинвертировать(заменить 1 на0, а 0 – на 1), послечего прибавить1 к младшемуразряду;

  • дляобразованияобратного кодаотрицательногочисла необходимов знаковомразряде поставитьединицу, а всецифровые разрядыинвертировать;

  • при данных преобразованияхнужно учитыватьразмер разряднойсетки.

Прямой код можно получитьиз дополнительногои обратногопо тем же правилам, которые служатдля нахождениядополнительногои обратногокодов.


В таблице5.1 п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ах5.1.


Таблица5.1 Прямой,обратный идополнительныйкоды

.

Десятичное

число

Прямой

код

Обратный

код

Дополнительный

код

-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
0

1000

0000

1111

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

Пример5.1 Двоичноесложение вдополнительномкоде


1) + +2 + 0010
2) + -2 + 1110
3) + +5 + 0101

+5 0101

-6 1010

-4 1100


+7
0111


-8
1000


+1
0001

Еще однимдостоинствомдополнительногокода являетсято, что нуль, вотличие отпpямого и обpатного кодов, пpедставляетсяодним кодом.Наличие 0 в знаковомбите пpи пpедставлении нуля опpеделяетего как величинуположительную,что согласуетсяс математическойтеоpией чисели соглашениями,пpинятыми во всех языкахпpогpаммиpования.

Из приведенныхпримеров следует,что положительныечисла в прямом,обратном идополнительномкодах совпадают.В прямом и обратномкоде нуль имеетдва представления– «положительный»и «отрицательный»нуль.

Отметим,что при представлениис плавающейзапятой отдельнокодируетсямантисса ипорядок числа.При этом возможнопредставлениемантисс и порядковчисел в одноми том же илиразных кодах.Например, порядокчисла можетбыть представленв прямом, а мантисса– в дополнительномкодах и т. п.

Такимобразом, используяобратный идополнительныйкоды, операциюалгебраическогосложения можносвести к арифметическомусложению кодовчисел, котороераспространяетсяи на разрядызнаков, которыерассматриваютсякак разрядыцелой частичисла.

При сложениичисел, меньшихединицы, в машинебыть полученычисла, по абсолютнойвеличине большие единицы. Для обнаруженияпереполненияразрядной сетки в ЭВМприменяютсямодифицированныепрямой, обратныйи дополнительныйкоды. В этихкодах знаккодируетсядвумя разрядами, причем знаку"плюс" соответствуеткомбинация00, а знаку "минус"- комбинация11.

Правиласложения длямодифицированныхкодов те же,что и для обычных.Единица переносаиз старшегознаковогоразряда вмодифицированномдополнительномкоде отбрасывается, а в модифицированномобратном кодепередаетсяв младший цифровойразряд.

Признакомпереполнения служит появлениев знаковомразряде суммыкомбинации01 при сложенииположительныхчисел (положительноепереполнение) или 10 при сложенииотрицательныхчисел (отрицательноепереполнение). Старший знаковыйразряд в этих случаях содержитистинное значениезнака суммы, а младший являетсястаршей значащейцифрой числа.Для коррекциипереполнениячисло нужносдвинуть вразрядной сеткена один разрядвправо, а восвободившийсястарший знаковыйразряд поместитьцифру, равнуюновому значениюмладшего знаковогоразряда. Послекорректировкипереполнениямантиссы результатанеобходимоувеличить на единицу порядокрезультата.


5.3 Двоично-десятичноекодирование


Для осуществления автоматическогоперевода десятичныхчисел в двоичнуюсистему счислениянеобходимовначале каким-то образом ввестиих в машину,Для этой целиобычно используетсядвоично-десятичнаязапись чиселили представлениеэтих чисел вкодах ASCII.

При двоично-десятичнойзаписи каждаяцифра десятичногочисла заменяетсячетырехзначнымдвоичным числом– тетрадой(таблица 5.2).


Таблица5.2 Наиболеераспространенныедвоично-десятичныекоды чисел от0 до 9


Десятичноечисло

Двоично-десятичныйкод (8421)


КодАйкена (2421) Код«с избытком3»

0

1

2

3

4

5

6

7

8

9

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

0

1

0

1

0

1

0

1

0

1

0

0

0

0

0

1

1

1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

1

1

0

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

0

0

0

0

1

1

1

1

1

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0


Например,число

в двоично-десятичномкоде записываетсяв виде
00110110 0000. Для выполнениясложения ивычитаниядвоично-десятичныхчисел наиболееудобно использоватьсамодополняющиесякоды, к числукоторых относятсякод Айкена, код“с избытком3 ”. Код Айкенаотличаетсяот обычногодвоично-десятичного,имеющего весовыекоэффициентыразрядов втетрадах 8421,другими значениямивесовых коэффициентовразрядов: 2421. Код“с избытком3”получаетсяиз обычногодвоично-десятичногоарифметическимприбавлениемчисла 3 (двоичноечисло 0011).

Как видноиз таблицы 5.2обратный код

числа,представленногов каком-либосамодополняющемсядвоично-десятичномкоде
,являетсяего двоичнымдополнениемдо 9. Например,число 5 в коде«с избытком3»
=1000имеет обратныйкод
=0111,соответствующийчислу 4 в коде«с избытком3», которое«дополняет»число 5 до 9, таккак 5+4=9.

При записичисел в кодахASCII цифрам от 0 до9 поставленыв соответствие восьмиразрядные двоичные коды от 00110000 до 00111001.

ЭВМ, предназначенныедля обработкиэкономическойинформации,например IBM AT, позволяютпроизводитьарифметическиеоперации вдесятичнойсистеме счислениянад числами, представленнымив двоично-десятичныхкодах и кодахASCII.


6Алгебраические действия над числами с плавающей и фиксированнойзапятой


6.1 Сложение чиселс фиксированнойзапятой


Алгебраическоесложение чиселс фиксированнойзапятой в цифровыхмашинах можетпроизводитьсяв одном из машинныхкодов: прямом,дополнительномили обратном.Чаще всегоиспользуетсялибо дополнительный,либо обратныйкод. При этомзнаковый разряди цифроваячасть числарассматриваетсякак единоецелое, в результатечего с отрицательнымичислами машинаоперирует какс положительными,независимоот того, представленыли они в видеправильныхдробей или ввиде целыхчисел. Главноедостоинстводополнительногои обратногокодов заключаетсяв том, что правильныйзнак суммыполучаетсяавтоматическив процессесуммированиязнаковых цифроперандов ицифры переносаиз соседнегомладшего разряда.В случае возникновенияединицы переносаиз знаковогоразряда суммыее нужно отброситьпри сложениив дополнительномкоде и прибавитьк младшемуразряду суммыпри сложениив обратном коде(т. е. произвестициклическийперенос единицыпереполнения).

Алгебраическоесложениемногоразрядныхчисел обычноорганизуетсякак регулярныйпроцесс, состоящийиз nодинаковыхопераций поразрядногосложения-вычитания,где n– количестворазрядов вкаждом из операндов).

При этом взависимостиот знаков слагаемыхвозможны четыреслучая:

1)Х1 > 0, Х2 > 0, Х3 1 + Х2 > 0;

2)Х1 > 0, Х23 =Х1 + Х2 > 0;

3)Х1 > 0, Х23 =Х1 + Х2

4)Х12 3 =Х1 + Х2

6.2 Сложение чиселс плавающейзапятой


Если имеютсядва числа внормальнойформе: Х1= m110P1и Х2= m210P2, то для тогочтобы их можнобыло сложить,нужно предварительнопривести ихк одному и томуже порядкуРобщ,т. е. преобразоватьодно из слагаемых,например, первоеследующимобразом:

Х1= m110P1 = m1*10P1= m1*10Pобщ

Далее можновынести степеньоснованиясистемы заскобки и произвестисложение мантисс:Х1+ Х2=m1*10Pобщ+ m210Pобщ.= (m1*+ m2) 10Pобщ

Преобразовыватьвсегда нужноменьше слагаемое,так как в противномслучае произойдетпереполнениеразрядной сеткимантиссыпреобразуемогочисла.

Машиннаяоперация сложениячисел в нормальнойформе распадаетсятаким образом,на 4 этапа:

  • Уравниваютсяпорядки слагаемых:меньший порядокувеличиваетсядо большего,мантиссапреобразуемогочисла сдвигаетсявправо (числоденормализуется)на соответствующееколичестворазрядов.Практическив машинахпроизводитсявычитаниепорядков операндов.Знак и модульразности Р1 -Р2 определяютсоответственно,какое из слагаемыхнужно преобразовыватьи на сколькоединиц следуетсдвигать мантиссупреобразуемогочисла.

  • Производитсяпреобразованиемантисс слагаемыхв один из модифицированныхкодов.

  • Мантиссыслагаемыхсуммируютсяпо правиламсложения дробныхчисел с фиксированнойзапятой.

  • Вслучае надобностимантисса суммыпереводитсяв прямой код,производитсянормализациясуммы и округлениеее мантиссы.


6.3 Умножениечисел с фиксированнойзапятой


Наиболеепросто умножениевыполняетсяв прямом коде,независимоот того, являютсяли операндыцелыми илидробными числами.В машинах сфиксированнойзапятой онореализуетсяв два этапа.

  • Определяетсязнак произведенияс помощью сложениязнаковых цифрсомножителейпо модулю два,где нуль соответствуетплюсу, а единица- минусу:

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 0

  • Производитьсяперемножениемодулей сомножителей,затем в случаенеобходимостиокруглениеполученногомодуля произведения,после чего кмодулю результатаприписываетсяего знак, определенныйна первом этапе.

Умножениепроизводитсяпо обычнымправилам арифметикисогласно двоичнойтаблицы умножения.

В машинахможет бытьреализованокак умножение,начинающеесяс младшей цифрымножителя(наиболее привычныйспособ), так иумножение,начинающеесясо старшейцифры множителя.


6.4 Умножениечисел с плавающейзапятой


Если имеемдва сомножителя,заданные внормальнойформе Х1= m110P1и Х2=m210P2,то их произведениеопределяетсяследующимобразом:

Х1 Х2 = m1 m2 10P1+P2.

Анализэтого соотношенияпоказывает,что умножениечисел в машинахс плавающейзапятой производитсяв четыре этапа:

  • Определениезнака произведенияпутем сложенияпо модулю двазнаковых цифрмантисс сомножителей.

  • Перемножениемодулей мантисссомножителейпо правиламдля дробныхчисел с фиксированнойзапятой.

  • Определениепорядка произведенияпутем алгебраическогосложения порядковсомножителейс использованиемлибо дополнительного,либо обратногомодифицированногокода.

  • Нормализациярезультатаи округлениемантиссы вслучае необходимости.Посколькусомножителиобязательноявляютсянормализованнымичислами, то денормализацияпроизведениявозможна толькона разряд итолько вправо.


7 Другие системысчисления


П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 , назвали соответственновосьмеричнойи шестнадцатеричной.


Таблица7.1 Восьмеричнаяи шестнадцатеричнаясистемы


Десятичноечисло

Восьмеричноечисло Триада Шестнадцатеричноечисло Тетрада
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 А 1010
11 13 001 011 В 1011
12 14 001 100 С 1100
13 15 001 101 D 1101
14 16 001 110 Е 1110
15 17 001 111 F 1111
16 20 010 000 10 10000

В таблице7.1 пpиведены числав десятичной,восьмеpичнойи шестнадцатеpичнойсистемах исоответствующиегpуппы бит в двоичной системе.

16-pазpядноедвоичное числосо знаковымpазpядом можнопpедставить6-pазpядным восьмеpичным,пpичем стаpшийбайт в нем будетпpинимать значениялишь 0 или 1. Вшестнадцатеpичной системе такоечисло займет4 pазpяда.


Пример7.1 Получениевосьмеричныхи шестнадцатеричныхчисел



Аpифметическиеопеpации надчислами ввосьмеpичнойили шестнадцатеpичнойсистемах пpоводятсяпо тем же пpавилам,что и в десятичнойсистеме. Тольконадо помнить,что если имеет место пеpенос,то пеpеноситсяне после 10, а 8 или16.

Таблица7.2 дает представлениео переводечисел в различныесистемы.

Таблица7.2 Переводчисел из однойсистемы счисленияв другую


Двоичные

числа

Восьмеричные

числа

Десятичные

числа

Шестнадцатеричныечисла
0,0001 0,04 0,0625 0,1
0,001 0,1 0,125 0,2
0,01 0,2 0,25 0,4
0,1 0,4 0,5 0,8
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10

ВСССР в 1957 г. былапостроенаэкспериментальнаямодель ЭВМ"Сетунь", арифметикакоторой базироваласьна троичнойсистеме счисления.К сожалению,несмотря наряд особенностей,привлекшихвнимание, вмашине былиреализованыдалеко не всеполезные свойстватроичного кодаи трехзначнойлогики, а такжене было операцийс плавающейзапятой, длякоторых преимуществатроичного кодаособенно существенны.


Списокиспользованнойлитературы

  1. ВыгодскийМ.Я. Справочникпо элементарнойматематике,М.: Государственноеиздательствотехнико-теоретическойлитературы,1956.

  2. КаганБ.М. Электронныевычислительныемашины и системы,М.: Энергоатомиздат,1985.

  3. МайоровС.А., КирилловВ.В., ПриблудаА.А., Введениев микроЭВМ,Л.: Машиностроение,1988.

  4. ФоминС.В. Системысчисления, М.:Наука, 1987.


25


Содержание:


  1. Историяразвития системсчисления. 2

  2. Двоичныесистемы счисления 6

  3. Двоичнаяарифметика 10

  4. Формыпредставлениячисел с фиксированнойи плавающейзапятой. 13

  5. Сложениечисел с фиксированнойзапятой. 16

  6. Сложениечисел с плавающейзапятой. 16

  7. Умножениечисел с фиксированнойзапятой. 17

  8. Умножениечисел с плавающейзапятой. 18

9. Прямой, обратныйи дополнительныйкоды. Модифицированныйкод. 20

Историяразвития системсчисления.


Счисление,нумерация, -это совокупностьприемов представлениянатуральныхчисел. В любойсистеме счислениянекоторыесимволы ( словаили знаки ) служатдля обозначенияопределенныхчисел, называемыхузловыми, остальныечисла ( алгоритмические) получаютсяв результатекаких – либоопераций изузловых чисел.Системы счисленияразличаютсявыбором узловыхчисел и способамиобразованияалгоритмических,а с появлениемписьменныхобозначенийчисловых символовсистемы счислениястали различатьсяхарактеромчисловых знакови принципамиих записи.

Наиболеесовершеннымпринципомпредставлениячисел являетсяпозиционный( поместный )принцип, согласнокоторому одини тот же числовойзнак ( цифра )имеет различныезначения взависимостиот места, гдеон расположен.Такая системасчисленияосновываетсяна том, что некотороечисло nединиц ( основаниесистемы счисления) объединяютсяв одну единицувторого разряда,n единицвторого разрядаобъединяютсяв одну единицутретьего разрядаи т. д. Основаниемсистем счисленияможет бытьлюбое число,больше единицы.К числу такихсистем относитсясовременнаядесятичнаясистема счисления( с основаниемn=10 ). В ней дляобозначенияпервых десятичисел служатцифры 0,1,…,9.

Несмотряна кажущуюсяестественностьтакой системы,она явиласьрезультатомдлительногоисторическогоразвития.Возникновениедесятичнойсистемы счислениясвязывают сосчетом на пальцах.Имелись системысчисления ис другим основанием:5.12 ( счет дюжинами), 20 ( следы такойсистемы сохранилисьво французкомязыке, напримерquatre – vingts, т. е.буквальночетыре – двадцать,означает 80 ), 40, 60и др. При вычисленияхна ЭВМ частоприменяетсясистема счисленияс основанием2.

Упервобытныхнародов несуществовалоразвитой системысчисления. Ещев 19 веке у многихплемен Австралиии Полинезиибыло толькодва числительных:один и два; сочетанияих образовываличисла: 3 -–два– один, 4 – два– два, 5 – два –два – один и 6– два – два –два. О всех числах,больших 6, говорили«много», неиндивидуализируяих. С развитиемобщественно– хозяйственнойжизни возниклапотребностьв созданиисистем счисления,которые позволялибы и обозначатьвсе большиесовокупностипредметов.Одной из наиболеедревних системсчисленияявляется египетскаяиероглифическаянумерация,возникшая ещеза 2500 – 3000 лет дон. э. Это быладесятичнаянепозиционнаясистема счисления,в которой длязаписи чиселприменялсятолько принципсложения ( числа,выраженныерядом стоящимицифрами, складываются). Специальныезнаки имелисьдля единицы,десяти⋓,ста и других десятичныхразрядов до

.Число 343 записывалосьтак:

Аналогичнымисистемамисчисления былигреческаягеродианова,римская, сирийскаяи др.

Римскиецифры – традиционноеназвание знаковойсистемы дляобозначениячисел, основаннойна употребленииособых символовдля десятичныхразрядов:


I V X L C D M

1 5 10 50 100 500 1000

Возниклаоколо 500 до н. э.у этрусков ииспользоваласьв Древнем Риме;иногда употребляетсяи в настоящеевремя. В этойсистеме счислениянатуральныечисла записываютсяпри помощиповторенияэтих цифр. Приэтом если большаяцифра стоитперед меньшей,то они складываются( принцип сложения), если же меньшая– перед большей,то меньшаявычитаетсяиз большей (принцип вычитания). Последнееправило применяетсятолько во избежаниячетырехкратногоповторенияодной и той жецифры. Например,I, X, C, ставятсясоответственноперед X, C, Mдля обозначения9, 90, 900 или передV, L, D для обозначения4, 40, 400.

Например,VI=5+1=6, IV=5-1=4( вместо IIII), XIX=10+10-1=19 ( вместоXVIIII), XL=50-10=40 (вместо XXXX ),XXXIII=10+10+10+1+1+1=33 и т. д. Выполнениеарифметическихдействий надмногозначнымичислами в этойсистеме весьманеудобно.

Болеесовершеннымисистемамисчисленияявляются алфавитные:ионийская,славянская,еврейская,арабская, атакже грузинскаяи армянская.Первой алфавитнойсистемой счислениябыла по – видимому,ионийская,возникшая вгреческихколониях вМалой Азии всередине 5 векадо н. э. В алфавитныхсистемах счислениячисла от 1 до9, а также вседесятки и сотниобозначаются,как правило,последовательнымибуквами алфавита( над которымиставятся черточки,чтобы отличитьзаписи чиселот слов). Число343 в ионийскойсистеме записывалосьтак:

( здесь
- 300,
- 40,
- 3
).

Цифровоезначение славянскихазбук. Так длякириллицы:



Дляобозначениячисел над буквамиспециальныйзнак

титло (иногданад каждойбуквой, иногдатолько надпервой или женад всем числом).Призаписи чисел,больших 10, цифрыписались слеванаправо в порядкеубывания десятичныхразрядов ( однакоиногда длячисел от 11 до19 единицы записывалисьранее десяти). Для обозначениятысяч передчислом их ( слевавнизу ) ставилсяособый знак
.Так, например:

Дляобозначенияи наименованиявысших десятичныхразрядов ( более

) существовалидве системы:«малое число»и «великоечисло»; в последнююсистему входиличисла до
или даже
( «боле сегонесть человеческомууму разумевати»):


Славянскиецифры до 18 векабыли основнымцифровым обозначениемв России.

Валфавитныхсистемах счисления,запись чиселгораздо короче,чем в предыдущих;кроме того, надчислами, записаннымив алфавитнойнумерации,гораздо легчепроизводитьарифметическиедействия. Однаков алфавитныхсистемах счислениянельзя записыватьсколь угоднобольшие числа.Греки расширилиионийскуюнумерацию:числа 1000, 2000,…,9000 ониобозначалитеми же буквами,что и 1,2,…,9, но ставилиштрих внизуслева: так,

обозначала1000,
- 2000 и т. д. Для 10 000 былвведен новыйзнак
.Тем не менееионийскаясистема счисленияоказаласьнепригоднойуже для астрономическихвычисленийэпохи эллинизма,и греческиеастрономы тоговремени сталикомбинироватьалфавитнуюсистему сшестидесятеричнойвавилонской– первой известнойнам системойсчисления,основаннойна позиционномпринципе. Всистеме счислениядревних вавилонян,возникшейпримерно за2000 лет до н. э. всечисла записывалисьс помощью двухзнаков: ( дляединицы) и ( длядесяти). Числадо 60 записывалиськак комбинацииэтих двух знаковс применениемпринципа сложения.Число 60 сноваобозначалосьзнаком , являясьединицей высшегоразряда. Длязаписи чиселот 60 до 3600 вновьприменялсяпринцип сложения,а число 36 000 обозначаласьтем же знаком,что и единица,и т. д. Число343=5*60+4*10+3 в этой системезаписывалосьтак:

Однаков силу отсутствиязнака для нуля,которым можнобыло бы отмечатьнедостающиеразряды, записьчисел в этойсистеме счисленияне была однозначной.Особенностьювавилонскойсистемы счислениябыло то, чтоабсолютноезначение чиселоставалосьнеопределенным.

Другаясистема счисленияоснованнаяна позиционномпринципе, возниклау индейцевмайя, обитателейполуостроваЮкатан ( ЦентральнаяАмерика) в середине1 – го тыс. н. э. Умайя существовалидве системысчисления:одна, напоминающаяегипетскую,употребляласьв повседневнойжизни, другая– позиционная,с основанием20 и особым знакомдля нуля, применяласьпри календарныхрасчетах. Записьв этой системе,как и в нашейсовременной,носила абсолютныйхарактер.

Современнаядесятичнаяпозиционнаясистема счислениявозникла наоснове нумерации,зародившейсяне позднее 5 в.в Индии. До этогов Индии имелисьсистемы счисления,в которых применялсяне только принципсложения, нои принцип умножения( единица какого– нибудь разрядаумножаетсяна стоящееслева число).Аналогичностроилисьстарокитайскаясистема счисленияи некоторыедругие. Если,например, условнообозначитьчисло 3 символомIII, а число10 символом X,то число 30 запишетсякак IIIX ( тридесятка ). Такиесистемы счислениямогли служитьподходом кмозданию десятичнойпозиционнойнумерации.

Десятичнаяпозиционнаясистема даетпринципиальнуювозможностьзаписыватьсколь угоднобольшие числа.Запись чиселв ней компактнаи удобна дляпроизводстваарифметическихопераций. Поэтомувскоре послевозникновениядесятичнаяпозиционнаясистема счисленияначинаетраспространятьсяиз Индии наЗапад и Восток.В 9 веке появляютсярукописи наарабском языке,в которых излагаетсяэта системасчисления, в10 веке десятичнаяпозиционнаянумерациядоходит доИспании, в начале12 века она появляетсяи в других странахЕвропы. Новаясистема счисленияполучила названиеарабской, потомучто в Европес ней познакомилисьвпервые полатинскимпереводам сарабского.Только в 16 векеновая нумерацияполучила широкоераспространениев науке и житейскомобиходе. В Россииона начинаетраспространятсяв 17 веке и в самомначале 18 в. вытесняеталфавитную.С введениемдесятичныхдробей десятичнаяпозиционнаясистема счислениястала универсальнымсредством длязаписи всехдействительныхчисел.

Двоичныесистемы счисления


Системойсчисленияназываетсясовокупностьприемов и правилдля наименованияи обозначениячисел. Условныезнаки, применяемыедля обозначениячисел, называютсяцифрами.

Обычновсе системысчисленияразбивают надва класса:непозиционныеи позиционные.Непозиционнойназывают системусчисления, вкоторой значениекаждой цифрыв любом местепоследовательностицифр, означающейзапись числа,не изменяется.

Историческипервыми системамисчисления былиименно непозиционныесистемы. Однимиз основныхнедостатковявляется трудностьзаписи большихчисел. Записьбольших чиселв таких системахлибо оченьгромоздка, либоалфавит системычрезвычайновелик. Примеромнепозиционнойсистемы счисления,достаточношироко применяющейсяв настоящеевремя, можетслужить такназываемаяримская нумерация.

Дляопределениязначения числанедостаточнознания типаи алфавитасистемы счисления.для этого необходимоеще заданиеправила, позволяющегопо значениюцифр установитьзначение числа.Например, дляопределениязначения числа945 в обычнойдесятичнойсистеме счисленияприменяетсяфункция десятичногосложения, т. е.значение числаопределяетсяпо значениюцифр (9 в крайнейлевой позиции,5 в крайней правойпозиции, 4 междуними) обычнымсуммированием:значение числа945 есть 900+40+5. В римскойнумерации числоIXопределяетсявычитанием:значение числаIXесть 10-1=9.

Системы,в которых значениекаждой цифрызависит и отместа в последовательностицифр при записичисла, носятназвание позиционных.Позиционнойсистемой счисленияявляется обычнаядесятичнаясистема счисления.

Привыполненииразличныхопераций всовременныхцифровых системахчисла обычнопредставляютсяв двоичнойсистеме счисления,основаниемкоторой являетсячисло 2. При этомцелое k-разрядноедесятичноечисло
записываетсяв виде n-разрядногодвоичного числа
:

=
=
,

где

=0,1, … , 9 – цифра вi-мразряде десятичногочисла:

=0или 1 – цифра вj-мразряде двоичногочисла.

Введениемотрицательныхстепеней числа2 представляютсядробные числа.

Такимобразом, в двоичномсчислении любоечисли можнопредставитьдвумя числами:0 и 1. Для представленияэтих чисел вцифровых системахдостаточноиметь электронныесхемы, которыемогут приниматьдва состояния,четко различающиесязначениемкакой-либоэлектрическойвеличины –потенциалаили тока. Одномуиз значенийэтой величинысоответствуетцифра 0, другому1. Относительнаяпростота созданияэлектронныхсхем с двумяэлектрическимисостояниямии привела ктому, что двоичноепредставлениечисел доминируетв современнойцифровой технике.При этом 0 обычнопредставляетсянизким уровнемпотенциала,а 1 – высокимуровнем. Такойспособ представленияназываетсяположительнойлогикой.

Переводдесятичногочисла в двоичныйкод можноосуществлятьпутем последовательногоделения числана 2. Остатки (0 или 1 ), получающиесяна каждом шагеделения, формируютдвоичный кодпреобразуемогочисла, начинаяс его младшегоразряда. В качествестаршего разрядадвоичного кодазаписывается1, полученнаяв результатепоследнегошага деления.Например,преобразованиечисла

=109в двоичный кодвыполняетсяследующимобразом:


: остатки 109 2

=1 54 2

=0 27 2

=1 13 2

=1 6 2

=0 3 2

=1 1

=

=109=
=
=1101101

Обратноепреобразованиевыполняетсяследующимобразом:

=

1 0 1 1 0 1 1


Цифровыесистемы оперируютдействительными,целыми и дробнымичислами, которыемогут иметьдве формыпредставления:с плавающейзапятой, сфиксированнойзапятой.

Прииспользованииплавающейзапятой числосостоит из двухчастей: мантиссыm,содержащейзначащиецифры числа,и порядка p,показывающегостепень, в которуюнадо возвестиоснование числаq, чтобыполученноепри этом число,умноженноена мантиссу, давало истинноезначениепредставляемогочисла:

Мантиссаи порядокпредставляютсяв двоичномкоде. Обычночисло даетсяв нормализованномвиде, когда егомантисса являетсяправильнойдробью, причемпервая значащаяцифра ( единица) следует непосредственнопосле запятой:например,

где m=0,1010;p=10;q=2

Прииспользованиификсированнойзапятой числопредставляетсяв виде единогоцелого, причемположениезапятой виспользуемойразрядной сеткежестко фиксировано.Обычно числас фиксированнойзапятой даютсяв виде правильнойдроби. Для этоговсе числа умножаютна масштабныйкоэффициент,чтобы перевестиих в правильнуюдробь. Цифровыесистемы, использующиечисла с плавающейзапятой, сложнеесистем, использующихчисла с фиксированнойзапятой, таккак при этомтребуетсявыполнениеопераций какнад мантиссами,так и над порядками.Однако диапазонпредставляемыхчисел при одинаковомчисле разрядовв системах сплавающейзапятой значительнобольше.

Дляпредставлениязнака числаиспользуетсязнаковый разрядz,который обычнорасполагаетсяперед числовымиразрядами. Дляположительныхчисел значениезнаковогоразряда z=0,для отрицательныхчисел z=1.Для чисел сплавающейзапятой вводятсяотдельныезнаковые разрядыдля мантиссыи для порядкачисел.

Дляпредставлениячисле со знакомв цифровыхсистемах используетсяобратный1или дополнительный2код (таб. 1.). Приэтом положительныечисла представляютсяв обычном двоичномкоде. Обратныйкод отрицательногочисла

образуетсяпутем замены0 во всех разрядахисходногодвоичного числа
на 1, и наоборот.Дополнительныйкод отрицательногочисла
получаетсяиз обратногоприбавлением1 к младшемуразряду.

Особенностькода Грея втом , что припереходе ккаждому последующемучислу в кодеизменяетсязначение толькоодного двоичногоразряда. Приэтом двухразрядныечисла образуютциклическуюпоследовательность00-01-11-10 (0-1-2-3), трехразрядные– последовательность000-001-011-010-110-111-101-100-000 (0-1-2-3-4-5-6-7-0) и т.д.Такая цикличностькода являетсявесьма удобной,например, длякодированияугловых перемещенийв преобразователяхугла поворотав цифровой код.


Таблица1. Наиболеераспространенныедвоичные кодыот 0 до 15

Десятичноечисло Формапредставления

Двоичноесчисление


Обратныйкод Дополнительныйкод

КодГрея


0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

0


Переводдесятичныхчисел в двоичныйкод требуетиспользованиядостаточносложных схемпреобразователейи занимаетотносительнодолгое время.Более простои быстро осуществляетсяперевод десятичныхчисел в двоично-десятичныйкод. При этомцифра в каждомразряде десятичногочисла заменяетсясоответствующимчетырехразряднымдвоичным числом(тетрадой) согласнотаб. 2


Таблица2.

Наиболеераспространенныедвоично-десятичныекоды чисел от0 до 9




Десятичноечисло

Двоично-десятичныйкод (8-4-2-1)


КодАйкена (2-4-2-1) Код«с избытком3»


0

1

2

3

4

5

6

7

8

9

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

0

1

0

1

0

1

0

1

0

1

0

0

0

0

0

1

1

1

1

1

0

0

0

0

1

0

1

1

1

1

0

0

1

1

0

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

0

0

0

0

1

1

1

1

1

0

1

1

1

1

0

0

0

0

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0



Например,число

в двоично-десятичномкоде записываетсяв виде
01110010 1001. Для выполнениясложения ивычитаниядвоично-десятичныхчисел наиболееудобно использоватьсамодополняющиесякоды, к числукоторых относятсякод Айкена, код“с избытком3 ”.Код Айкенаотличаетсяот обычногодвоично-десятичного,имеющего весовыекоэффициентыразрядов втетрадах 8-4-2-1,другими значениямивесовых коэффициентовразрядов: 2-4-2-1.Код “с избытком3”получаетсяиз обычногодвоично-десятичногоарифметическимприбавлениемчисла 3 (двоичноечисло 0011).

Каквидно из таблицы2 обратный код

числа,представленногов каком-либосамодополняющемдвоично-десятичномкоде
,являетсяего двоичнымдополнениемдо 9. Например,число 5 в коде«с избытком3»
=1000имеет обратныйкод
=0111,соответствующийчислу 4 в коде«с избытком3», которое«дополняет»число 5 до 9, таккак 5+4=9.

Двоичнаяарифметика.


Мыбудем рассматриватьдвоичную системусчисления сцифрами 0,1. Именноэта системасчисленияполучила широкоеприменениев вычислительныхмашинах. Началоисследованияэтой системыотносится кXVIвеку. Удобствои простотувыполненияарифметическихопераций вдвоичной системесчисленияотмечали ещеБ. Паскаль, Г.Лейбниц и др.Рассмотримправила выполненияарифметическихопераций сдвоичнымичислами.

СЛОЖЕНИЕ.Для того чтобывыполнитьсложение двухчисел, записанныхв двоичнойсистеме счисления,достаточнознать простейшуютаблицу сложения:

0+0=0

0+1=1

1+0=1

1+1=10

Последняясумма представляетсобой двузначноечисло. Это следуетпонимать какперенос однойдвоичной единицыв соседнийстарший разряд.Это можно записатьтак:

1+1=0+переносединицы в соседнийстарший разряд.

Пример:Сложить двоичныечисла

и
.

Правилаарифметикиво всех позиционныхсистемах счисленияаналогичны.Для выполнениясложения запишемчисла столбикомтак, чтобысоответствующиеразряды чиселоказались другпод другом.Имеем

+ 110,1011

1

0111,10101

10001,00011– поразряднаясумма без учетапереносов


11 1, 1 - переносы

11100,01011 - поразряднаясумма без учетаповторныхпереносов


1

11110,01011 - окончательнаясумма.

Сложениенесколькихчисел вызываетнекоторыетрудности, таккак в результатепоразрядногосложения могутполучитсяпереносы, превышающиеединицу. В такихслучаях приходитсяучитыватьпереносы нетолько в соседней,но и другиестаршие разряды.

ВЫЧИТАНИЕ.Таблица вычитанияимеет вид

0-0=0

1-0=1

1-1=0

10-1=1

Вычитаниев двоичнойсистеме выполняетсяаналогичновычитанию вдесятичнойсистеме счисления.При необходимости,когда в некоторомразряде приходитсявычитать единицуиз нуля, занимаетсяединица изследующегостаршего разряда.Если в следующемразряде нуль,то заем делаетсяв ближайшемстаршем разряде,в котором стоитединица. Приэтом следуетпонимать, чтозанимаемаяединица равнадвум единицамданного разряда,т. е. вычитаниевыполняетсяпо следующемуправилу.

Пример.Вычесть их

=11010,1011число
=1101,01111

11010,1011

-

1101,01111

1101,00111


УМНОЖЕНИЕ.Умножение двухдвоичных чиселвыполняетсятак же, как иумножениедесятичных.Сначала получаютсячастичныепроизведенияи затем их суммируютс учетом весасоответствующегоразряда множителя.

Отличительнойособенностьюумножения вдвоичной системесчисленияявляется егопростота,обусловленнаяпростотойтаблицы умножения.В соответствиис ней, каждоечастичноепроизведениеили равно нулю,если в соответствующемразряде множителястоит нуль, илиравно множимому,сдвинутомуна соответствующеечисло разрядов,если в соответствующемразряде множителястоит единица.Таким образом,операция умноженияв двоичнойсистеме сводитсяк операциямсдвига и сложения.

Умножениепроизводится,начиная с младшегоили старшегоразряда множителя,что и определяетнаправлениесдвига. Еслисомножителиимеют дробныечасти, то положениезапятой впроизведенииопределяетсяпо тем же правилам,что и для десятичныхчисел.

Пример.Перемножитьдвоичные числа

=101,1101и
=1001,101

1011101

*1001101

1

011101

0000000

1011101

1011101

0000000

0000000

1011101

1101111111001

Искомыйрезультат:110111,1111001

Тотже результатполучим, начинаяумножение состарших разрядовмножителя:

1011101

*1001101

1

011101

1011101

1011101

1011101

1011101

1101111111001


ДЕЛЕНИЕ.Деление чиселв двоичнойсистеме производитсяаналогичноделению десятичныхчисел. Рассмотримделение двухцелых чисел,так как делимоеи делительвсегда могутбыть приведенык такому видупутем перениесениязапятой в делимоми делителе наодиноаковоечисло разрядови дописываниянеоюходимыхнулей. Делениеначинаетсяс того, что отделимого слеваотделяетсяминимальнаягруппа разрядов,которая, рассматриваемаякак число, превышаетили равна делителю.Дальнейшиедействия выполняютсяпо обычнымправилам, приемпоследняя целаяцифра частногополучаетсятогда, когдавсе цифры делимогоисчерпаны.

Пример.Разделить

=1101,11на
=10111.


1101110 0111

-10111 100,1100

100100

-10111

11010

-10111

Остаток 1100


Пример.Разделить

=10001,111на
=11,01


10001111 11010

-11010 101,1

100111

-11010

11011

-11010

00000

Искомыйрезультат 101,1

Такимобразов, выполнениеарифметическихопераций вдвоичной системесчислениядостаточнопросто. Особеннопросто выполнятьоперации сложения,вычитания иумножения.Благодоряэтому, применениедвоичной системыв вычислительныхмашинах позволяетупростить схемыустройств, вкоторых осуществляютсяоперации надчислами.

Формыпредставлениячисел сфиксированнойи плавающейзапятой.


Припредставлениичисла в двоичномкоде с цифрами0,1 в каждом разрядезаписываютсяцифры 0 или 1. Таккак в ЦВМ «запись»числа осуществляетсяс помощью техническихустройств, тодля представленияего в такойформе необходиморасполагатьустройствамис двумя надежноразличнымисостояниями,которым могутбыть сопоставленызначения 0 или1. Комбинациятаких устройств,число которыхсоответствуетколичествуразрядовзаписываемогочисла, можетбыть использованадля представлениячисел в ЦВМ.

В качестветаких устройств,могут бытьиспользованытриггеры. Набортриггеров,предназначенныхдля представлениячисел в ЦВМ, атакже для выполнениянад ними некоторыхлогическихпреобразований,называетсярегистром.Разумеется,число разрядов,отведенноедля записичисла, соответствующеечислу триггеров,в ЦВМ всегдаконечно. Выборколичестваразрядов дляпредставлениячисел в ЦВМявляется однимиз самых ответственныхэтапов конструированиявычислительноймашины и обуславливаетсяцелым рядомтребований,среди которыходно из важнейших– необходимаяточность вычислений.

В ЦВМиспользуютдве формыпредставлениячисел: естественнуюи полулогарифмическую.


Числас фиксированнойзапятой.


Числас фиксированнойзапятой. Приэтой формеобычно запятая,отделяющаяцелую частьчисла от еедробной части,фиксируетсяперед старшимразрядом модулячисла.







Разрядымодуля числа

Знаковыйразряд

Местозапятой


Такимобразом, значениемодуля числавсегда оказываетсяменьше единицы.Это условиепутем выбораопределенныхмасштабныхкоэффициентовдолжно выполнятсядля исходныхданных задачии всех промежуточныхрезультатоввычислений.

Призанесении числав ячейку памятисвободныемладшие разрядызаполняютсянулями, а есличисло значащихразрядов модулябольше n –1, то младшиеразряды модуля,которые непоместилисьв разряднойсетке, теряются.Это приводитк погрешности,значение которойменьше единицымладшего разрядаразряднойсетки, т. е.

.Так, при n=16
при n=32
.

Есличисло имеетцелую часть,то для ее храненияв разряднойсетке местанет, она теряется,число в разряднойсетке оказываетсяошибочным.

Достоинствопредставлениячисел в формес фиксированнойзапятой состоитв простотевыполненияарифметическихопераций.

Недостатки– в необходимостивыбора масштабныхкоэффициентови в низкой точностипредставленияс малыми значениямимодуля ( нулив старших разрядахмодуля приводитк уменьшениюколичестваразрядов, занимаемыхзначащей частьюмодуля числа).


Числас плавающейзапятой.


Длянаучно – техническихрасчетов необходимопредставлятьчисла в широкомдиапазоны ис достаточнобольшой точностью.Указаннымтребованиямотвечают числас плавающейзапятой.


m m – 1 1 p p – 1 1









Знак Модульмантиссы Знак Модульпорядка

числа порядка


Числосостоит измантиссы, старшийразряд которойопределяетзнак числа, ипорядка сознаком. Значениемодуля мантиссыпредставляетсядвоичным дробнымчислом, т. е. запятаяфиксируетсяперед старшимразрядом модулямантиссы, порядокпредставляетсяцелым числом.Порядок указываетдействительноеположениезапятой в числе.Код в приведенномформате представляетзначение числав полулогарифмическойформе:

,где М и П мантиссаи порядок числа.

Точностьпредставлениязначений зависитот количествазначащих цифрмантиссы. Дляповышенияточности числас плавающейзапятой представляютсяв нормализованнойформе, при которойзначение модулямантиссы лежитв пределах

.Признакомнормализованногочисла служитналичие единицыв старшем разрядемодуля мантиссы.В нормализованнойформе могутбыть представленывсе числа изнекоторогодиапазона заисключениемнуля.

Нормализованныедвоичные числас плавающейзапятой представляютзначения модуляв диапазоне

где

- максимальноезначение модуляпорядка.

Так, приp=7

-1=
=63и диапазонпредставлениямодулей нормализованныхчисел

,

Такимобразом, диапазончисел от

до
.

Длярасширениядиапазонапредставляемыхчисел прификсированнойдлине разряднойсетки ( m+p )в качествеоснованиясистемы счислениявыбирается

.При этом число,представляемоев разряднойсетки, приобретаетзначения
.Нормализованнаямантисса 16 –ричного числас плавающейзапятой имеетзначения, лежащеев диапазоне
.Признакомнормализациитакого числаявляется наличиехотя бы однойединицы в четырехстарших разрядахмодуля мантиссы.Диапазонпредставлениячисел в этомслучае существеннорасширяется,находясь притом же количестверазрядов впределах от
до
.

Рассмотримпогрешностьпредставлениячисел с плавающейзапятой. Абсолютнаяпогрешностьчисла

.

Предельнаяотносительнаяпогрешность– отношениеабсолютнойпогрешностик числу приминимальномзначении модулямантиссынормализованногочисла.

.

Отсюдавидно, что точностьпредставлениячисел определяетсяколичествомразрядов, отводимыхв разряднойсетке под мантиссу.

В современныхЭВМ числа сплавающейзапятой имеютоснованиясистемы счисления16 и представляютсяв двух форматах:коротком ( счислом разрядов32 ) и длинном ( счислом разрядов64 ). Длинный форматпредусматриваетувеличенияколичестваразрядов, отводимыхв разряднойсетке под мантиссу,за счет чегоповышаетсяточностьпредставлениячисел.

Сложениечисел с фиксированнойзапятой


Алгебраическоесложение чиселс фиксированнойзапятой в цифровыхмашинах можетпроизводитьсяв одном из машинныхкодов: прямом,дополнительномили обратном.Чаще всегоиспользуетсялибо дополнительный,либо обратныйкод. При этомзнаковый разряди цифроваячасть числарассматриваетсякак единоецелое, в результатечего с отрицательнымичислами машинаоперирует какс положительными,независимоот того, представленыли они в видеправильныхдробей или ввиде целыхчисел. Главноедостоинстводополнительногои обратногокодов заключаетсяв том, что правильныйзнак суммыполучаетсяавтоматическив процессесуммированиязнаковых цифроперандов ицифры переносаиз соседнегомладшего разряда.В случае возникновенияединицы переносаиз знаковогоразряда суммыее нужно отброситьпри сложениив дополнительномкоде и прибавитьк младшемуразряду суммыпри сложениив обратном коде(т. е. произвестициклическийперенос единицыпереполнения).

Алгебраическоесложение многоразрядных чиселобычно организуетсякак регулярныйпроцесс, состоящийиз n одинаковыхопераций поразрядногосложения вычитания,где n- количестворазрядов вкаждом из операндов).

При этомв зависимостиот знаков слагаемыхвозможны четыреслучая:

1) Х1> 0, Х2> 0, Х3 = Х1 + Х2 > 0;

2) Х1> 0, Х23 = Х1 + Х2 > 0;

3) Х1> 0, Х23 = Х1 + Х2

4) Х123 = Х1 + Х2

Примерысложения чиселс фиксированнойзапятой былирассмотренывыше.

Сложениечисел с плавающейзапятой


Если имеютсядва числа внормальнойформе: Х1 = m110p1 и Х2 = m2 10p2, то для тогочтобы их можнобыло сложить,нужно предварительнопривести ихк одному и томуже порядкуРобщ, т. е. преобразоватьодно из слагаемых,например, первоеследующимобразом:

Х1 = m110p1 = m1* 10p1 = m1*10pобщ.

Далееможно вынестистепень основаниясистемы заскобки и произвестисложение мантисс:Х1 + Х2= m1*10pобщ. + m2 10pобщ.= (m1* + m2 ) 10pобщ.

Преобразовыватьвсегда нужноменьше слагаемое,так как в противномслучае произойдетпереполнениеразрядной сеткимантиссыпреобразуемогочисла.

Машиннаяоперация сложениячисел в нормальнойформе распадаетсятаким образом,на 4 этапа:

1.Уравниваютсяпорядки слагаемых:меньший порядокувеличиваетсядо большего,мантиссапреобразуемогочисла сдвигаетсявправо (числоденормализуется)на соответствующееколичестворазрядов. Практическив машинахпроизводитсявычитаниепорядков операндов.Знак и модульразности Р1 -Р2 определяютсоответственно,какое из слагаемыхнужно преобразовыватьи на сколькоединиц следуетсдвигать мантиссупреобразуемогочисла.

2.Производитсяпреобразованиемантисс слагаемыхв один из модифицированныхкодов.

3.Мантиссыслагаемыхсуммируютсяпо правиламсложения дробныхчисел с фиксированнойзапятой.

4.Вслучае надобностимантисса суммыпереводитсяв прямой код,производитсянормализациясуммы и округлениеее мантиссы.

ПРИМЕР.Используядополнительныйкод, сложитьдва числа:

[

X1]пр = 0 101; 1,10101 и [X2]пр= 0 100 ; 1,11001

порядок мантисса

РЕШЕНИЕ:

  1. [X2]пр= 0 101; 1,011001

  2. [m1]мод= 11,01011; [m1]мод= 11,100111.

доп доп

  1. [m1]мод= 11,01011

  • доп

[m2]мод= 11,01011

доп


[m3]мод= 110, 111101

доп


отбрасывается запрещеннаякомбинация

4.Комбинациязнаковых цифрмантиссы показывает,что суммаденормализованавлево (всегдатолько на одинразряд)

Произведемнормализациюсуммы вправо


[m3]мод= 10, 111101 1,0111101

доп

Робщ= 0,101 + 0,001 = 0,110

Далеепереводим суммув прямой коди производимокруглениеее мантиссыдо пяти разрядов.

О

твет:[X3]пр= 0 110 ; 1,1000011 ~ 0 100; 1, 10001

порядок мантисса

Умножениечисел с фиксированнойзапятой


Наиболеепросто умножениевыполняетсяв прямом коде,независимоот того, являютсяли операндыцелыми илидробными числами.В машинах сфиксированнойзапятой онореализуетсяв два этапа.

1.Определяетсязнак произведенияс помощью сложениязнаковых цифрсомножителейпо модулю два,где нуль соответствуетплюсу, а единица- минусу:

0+ 0 = 0

0+ 1 = 1

1+ 0 = 1

1+ 1 = 0

Вручнуюэто эквивалентно:

(+) (+) = (+); (+) (-) = (-); (-) (+) = (-); (-)(-) = (+).

2.Производитьсяперемножениемодулей сомножителей,затем в случаенеобходимостиокруглениеполученногомодуля произведения,после чего кмодулю результатаприписываетсяего знак, определенныйна первом этапе.

Умножениепроизводитсяпо обычнымправилам арифметикисогласно двоичнойтаблицы умножения.Произведениемодулей |Х3|= |Х1| * |Х2|двух (напримердробных) чисел,где множительХ2 = Х21 2-1 + Х222-2 +…+ Х2n2-n, чащевсего вычисляетсякак сумма такназываемыхчастичныхпроизведений:

n

3/= /Х/ Х2i2-i

i=1

В машинахможет бытьреализованокак умножение,начинающеесяс младшей цифрымножителя(наиболее привычныйспособ), так иумножение,начинающеесясо старшейцифры множителя.При умножениивручную в первомслучае частичныепроизведениясдвигаютсявлево, во втором- вправо.

ПРИМЕР.Перемножитьчисла [X1]пр = 0,1010 и [X2]пр= 1,1101

Решение.

1.Определяемзнак произведения0 + 1 = 1.

2.Перемножиммодули операндов,порядок перемноженияопределяетсянумерациейцифр множителя:


1-йспособ

0,1010 0,1010

х 0,1101 х 0,1101

4,3,2,1
номера цифрмножителя 1,2,3,4

1010 1010

0000 1010

+1010 + 0000

1010 1010

0,10000010 0,10000010

Послеокругленияприписываемк модулю знакпроизведения,полученныйна первом этапеумножения.

О

твет:[X3]пр = 1,0000010 ~ 1,10000.

Первыйспособ частоназывают умножениеммладшими разрядамивперед, а второй- умножениемстаршими разрядамивперед.

Умножениечисел с плавающейзапятой


Если имеемдва сомножителя,заданные внормальнойформе Х1 = m110p1 и Х2 = m2 10p2,то их произведениеопределяетсяследующимобразом:

Х1Х2 =m1 m2 10p1+р2.

Анализэтого соотношенияпоказывает,что умножениечисел в машинахс плавающейзапятой производитсяв четыре этапа:

1.Определениезнака произведенияпутем сложенияпо модулю двазнаковых цифрмантисс сомножителей.

2.Перемножениемодулей мантисссомножителейпо правиламдля дробныхчисел с фиксированнойзапятой.

3.Определениепорядка произведенияпутем алгебраическогосложения порядковсомножителейс использованиемлибо дополнительного,либо обратногомодифицированногокода.

4.Нормализациярезультатаи округлениемантиссы вслучае необходимости.Посколькусомножителиобязательноявляютсянормализованнымичислами, то денормализацияпроизведениявозможна толькона разряд итолько вправо.


ПРИМЕР.Перемножитьчисла с плавающейзапятой.

Множимое[X1]пр = 0 101; 1,10101

Множитель[X2]пр= 0 100; 1,11001

Решение.

1.Знакпроизведения1 + 0 = 1.

2.Перемножаеммодули мантисс:

1-йшаг ,0000 0000 - нулеваясумма

+,0000 1010 - 1-ечастичноепроизведение

2-йшаг ,0000 1010 - 2-ясумма

+ ,0000 0000 - 2-е частичноепроизведение


3-йшаг ,0000 1010 - 3-ясумма

+ ,0010 1000 - 3-е частичноепроизведение


4-йшаг ,0011 0010 - 4-ясумма

+ ,0101 0000 - 4-е частичноепроизведение

, 1000 0010 - модульпроизведениямантисс.

Находимпорядок произведения:

1]мод=00,101

  • доп

2]мод= 11,101

доп


3]мод= 100, 010

доп


теряется

Производимокруглениемантиссыпроизведения.

О

твет:[X3]пр = [Х1Х2]пр= 0 010 ; 1 100

порядок мантисса

Прямой,обратный идополнительныйкоды. Модифицированныйкод.


В

ведемопределениепрямого, обратногои дополнительногокодов. Рассмотримдвоичное число
В соответствиис изложеннымвыше число Rкодируетсяследующимобразом:

0

R= 1

и

ли,в более общемслучае, если
,

0

R=

Таккак

,эти соотношенияможно переписатьтаким образом:

,

=

Представлениечисел в соответствиис данной формулойназываетсяпрямым кодомчисла

Е

сли
,то формула
перепишетсяв таком виде:

,

=

Аналогичнымобразом кодируютсяи числа, модулькоторых неменьше единицы.

Пример:Записать числав прямом коде:



Изравенства

следует,что операциювычитания yиз xможно заменитьоперациейсложения S-yи хс последующимвычитаниемиз результатавеличины S.

Введемзапись

R

= S+R

Представлениечисел в соответствиис

называетсядополнительнымкодом числаR.

Операциювычитания можнозаменить операциейсложения и наоснове соотношения

.

Код,определенныйс помощью соотношения


R

=

называетсяобратным кодомчислаR.

Отметим,что при S=2для полученияобратного кодаотрицательногочисла в знаковыйразряд нужнозаписать единицу,а каждую цифрув записи числазаменить наее дополнениедо S-1,т. е. единицузаменить нануль, а нуль наединицу.

Пример:Записать числав обратномкоде:


=0,110101
=0 110101

=– 101,1101
=1 0100010.

Пример:Записать числав дополнительномколе:


=0,110101
=0 110101

=– 101,1101
=1 0100011

Изприведенныхпримеров следует,что положительныечисла в прямом,обратном идополнительномкодах совпадают.В прямом и обратномкоде нуль имеетдва представления– «положительный»и «отрицательный»нуль. В дополнительномкоде нуль имееттолько одно,«положительное»,представление.

Отметим,что при представлениис плавающейзапятой отдельнокодируетсямантисса ипорядок числа.При этом возможнопредставлениемантисс и порядковчисел в одноми том же илиразных кодах.Например, порядокчисла можетбыть представленв прямом, а мантисса– в дополнительномкодах и т. п.

Такимобразом, используяобратный идополнительныйкоды, операциюалгебраическогосложения можносвести к арифметическомусложению кодовчисел, котороераспространяетсяи на разрядызнаков, которыерассматриваютсякак разрядыцелой частичисла.

Рассмотримсначала использованиеобратного кодадля алгебраическогосложения n– разрядныхдвоичных чиселR иQ , когдаоба ониили одноиз них отрицательно.Будем считать,что модуль ихалгебраическойсуммы меньшеединицы и единицапереноса изразряда знакаприбавляетсяк младшемуразряду получившейсясуммы.

Пусть, например,

( обозначим
) и
( обозначим
).Считаем, - 1
0.Тогда в соответствиис
можно записать

.

Всвязи с тем,что возникаетперенос иззнаковогоразряда, однадвойка пропадаети добавляетсяединица переносак младшемуразряду суммы

:

.

Такимобразом, сложениес переносомединицы знаковогоразряда двухотрицательныхчисел в обратномкоде дает обратныйкод их алгебраическойсуммы.

Рассмотрималгебраическуюсумму чисел

( обозначим
.Можем записать

.

Если

,то
и возникаетперенос изразряда знака.В этом случаеимеем

.

Еслиже

,то
и переноса невозникает;получаем

.

Мыполучили, чтосложение чиселс использованиемобратных кодовс циклическимпереносомприводит кполучениюалгебраическойсуммы в прямомкоде, если суммаположительна,и в обратномкоде, если суммаотрицательна.

Аналогичнопри использованиидополнительныхкодов алгебраическоесложение их,включая разрядызнаков, которыерассматриваютсякак разрядыцелых единиц,дает, если единицапереноса изразряда отбрасывается,следующийрезультат: еслиалгебраическаясумма положительна,то результатполучаетсяв прямом коде,и в дополнительномкоде, если онаотрицательна.

Такимобразом, применениеобратного идополнительногокодов даетвозможностьоперациюалгебраическогосложения свестик операцииарифметическогосложения. Однаконами рассмотренслучай, когдамодуль полученнойсуммы меньшеединицы. В общемслучае присложении двухчисел, модулькоторых меньшеединицы, модульсуммы можетоказатьсябольше илиравен единице( так называемоепереполнениеразрядной сеткимантиссы ).

Дляобнаружениятакого переполнения,учитывая, чтомодуль суммыдвух такихчисел меньшедвух, используютодин дополнительныйразряд. Код (прямой, дополнительный,обратный ), вкотором имеетсятакой дополнительныйразряд, называетсямодифицированным.В модифицированныхкодах этотразряд используетсядля дублированиязнака числа,т. е. знак «плюс»обозначается00, а «минус» - 11.Правила переносаиз разрядовзнака остаютсяпрежними взависимостиот того, в какомкоде ( обратномили дополнительном) представленычисла. На переполнениеже разряднойсетки, т. е. чтомодуль суммы

,указываетнесовпадениецифр в знаковыхразрядах. Вэтом случаекомбинации01 соответствуетположительное,а 10 – отрицательноечисло.

Пример:Сложить

и

Прямоймодифицированныйкод

0011011.

Обратныймодифицированныйкод

1111010.

+00 11011

1111010

100 10101


1

00 10110 =

.

Пример:Сложить

и

1101010

1100111.

+ 11 01010

11 00111

(1) 10 10001

=10 10001

Переполнениеразряднойсетки.

Такимобразом, разрядныесетки в арифметическомустройствеимеют большеечисло разрядов,так как представленияв модифицированномкоде содержатвторой ( дополнительный)знаковый разряддля мантиссы,а также второйзнаковый разрядпорядка ( дляпредставленияс плавающейзапятой в отсутствиисмещения порядка).

Итак,в общем случаесложение ивычитание вмашинах с плавающейзапятой состоитиз следующихэтапов:

1.Сравнениепорядков чисел.

2.Выравниваниепорядков чисел.

3.Переводмантисс слагаемыхв обратный илидополнительныймодифицированныекоды.

4.Сложениемантисс в прямом,обратном илидополнительноммодифицированныхкодах.

5.Исправлениенормализациивправо иливлево.

6.Переводмантиссы результатав прямой код.

7.Выдачарезультатас учетом порядка.

Пример.Сложить двачисла, представленныев форме с плавающейзапятой.

R=0011 1 111010001

Q=0101 1 110101101,

гдев первой позициизаписи – знакпорядка, в следующихтрех – модульпорядка, затемследует знаковыйразряд мантиссыи модуль мантиссы,т. е.

R=–0.111010001*

Q=–0.110101101*

а)Сравнениепорядков. Избольшего порядкавычитаем меньший:

и

.

б)Выравниваниепорядков. Сдвигаеммантиссу числаRна

на (2) разрядоввправо и присваиваемему порядок
:

R=0101 1 001110100.

в)Переводиммантиссы вмодифицированныйобратный код:

=11 110001011

=11 001010010

г)Складываеммантиссы:

11 110001011

11 001010010

1 10 111011101

1

110 111011110

д)Несовпадениецифр в знаковоми контрольномразрядах указываетна нарушениенормализациивлево. Сдвигаеммантиссу вправона один разряди соответственноувеличиваемпорядок.

Получаем:мантисса 11011101111; порядок 110.

е)Перевод мантиссыв прямой код:

1 100010000.

ж)Результат R+Q=0110 1 100010000, т. е. R+Q=

.

Списокиспользуемойлитературы:


  1. РоличЧ. Н. – От 2 до 16, Минск,«Высшая школа»,1981г.

  2. Математическаяэнциклопедия.М: “Советскаяэнциклопедия”1985г.

  3. ШауманА. М. Основымашинной арифметики.Ленинград,ИздательствоЛенинградскогоуниверситета.1979г.

  4. КалабековБ. А. Цифровыеустройстваи микропроцессорныесистемы. М: “Горячаялиния - Телеком”2000г.

  5. ВорощукА. Н. Основы ЦВМи программирования.М:”Наука” 1978г.

  6. АлексенкоА. Г. Микросхемотехника.М: ”Радио и связь”1990г.

1Обратный код

двоичногочисла
называетсятакже дополнениемдо 1, так как длякаждого разрядачисла
=1

2Дополнительныйкод

числа
называетсятакже дополнениемчисла до 2, таккак для каждогоразряда числа
( число 2 в двоичнойформе )

ПРИМЕР























































































Содержание


1 Происхождениеи история развитиясистем счисления1


1.1 Границысчета 1

1.2 Десятичнаясистема счисления2

1.3 Развитиепонятия числа2

1.4 Системынумерациинекоторыхнародов3


2 Основныепонятия иопределения8


3 Двоичнаясистема счисления:основныесведения10


3.1 Историявозникновениядвоичной системысчисления10

3.2 Основныепонятия машиннойарифметики10


4Взаимныйперевод двоичныхи десятичныхчисел и элементарные

двоичныеарифметическиедействия11


4.1 Представлениедвоичных чисели перевод ихв десятичные11

4.2 Преобразованиедесятичныхчисел в двоичные11

4.3 Арифметическиедействия наддвоичнымичислами13


5 Представлениечисел в ЭВМ,кодирование17


5.1 Представлениечисел с фиксированнойи плавающейзапятой17

5.2 Прямой,обратный идополнительныйкоды.

Модифицированныйкод19

5.3 Двоично-десятичноекодирование21


6 Алгебраическиедействия надчислами с плавающейи

фиксированнойзапятой22


6.1 Сложениечисел с фиксированнойзапятой22

6.2 Сложениечисел с плавающейзапятой22

6.3 Умножениечисел с фиксированнойзапятой23

6.4 Умножениечисел с плавающейзапятой23


7 Другиесистемы счисления23


Списокиспользованнойлитературы26