Системы счисления (166805)

Посмотреть архив целиком

24



Содержание:







  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

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

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

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


Обратный код

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

Код Грея