среда, 30 мая 2012 г.

Изобретение десятичной системы счисления.



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

Запись числа в позиционной системе счисления.


Основание с/с соответствует количеству цифр (знаков), используемых для записи чисел в этой с/с. Например, основанием десятичной с/с есть число 10 и именно десять цифр (0,1,2,3,4,5,6,7,8,9) мы используем при записи чисел в этой с/с. В двоичной с/с мы используем всего две цифры - 0 и 1, в шестнадцатиричной  - 16, причем для чисел 10,11,12,13,14,15 в этой с/с введены дополнительное цифры (знаки) - A,B,C,D,E,F соответственно, т.к. традиционно используемых цифр недостаточно. Необходимо заметить, что люди дали название той или иной с/с в десятичной с/с. Число, соответствующее основанию рассматриваемой с/с запишется в этой с/с как 10:
2 (10 с/с) = 10 (2 с/с)
16 (10 с/с)= 10 (16 с/с)
8 (10 с/с) = 10 (8 с/с)
После появления позиционной системы появились и правила (алгоритмы) сложения, вычитания, умножения (столбиком), деления (уголком).
Однако с технической точки зрения основание 10 не слишком удобно: в цепях электрических схем необходимо для этого иметь 10 различных сигналов (хотя десятичная с/с использовалась в механических арифмометрах). С технической точки зрения, чем меньше сигналов в схеме, тем лучше. Наименьшее основание , которое может быть у позиционной с/с, - это 2. Поэтому двоичная с/с широко используется в современной вычислительной технике, в устройствах автоматики и связи.
Перевод чисел из произвольной с/с в десятичную и наоборот.
Рассмотрим какое-нибудь число в традиционной для нас 10 с/с, например 1 570 321. Нам известно, что данное число мы можем представить следующим образом в десятичной с/с:
1*106+5*105+7*104+0*103+3*102+2*101+1*100
Аналогично можно поступить с числом 110011 в двоичной с/с:
1*10101+1*10100+0*1011+0*1010+1*101+1*100
(здесь все числа, входящие в выражение представлены в 2 с/с)
Нам привычнее видеть запись этого же выражения в 10 с/с:
1*25+1*24+0*23+0*22+1*21+1*20
Если мы вычислим значение этого выражения в 10 с/с, то получим представление указанного двоичного числа в 10 с/с. Таким образом мы получаем очень простой метод перевода чисел из любой с/с в десятичную: пусть имеется с/с с основанием k и некоторое число a1..an в этой с/с, где a1,..,an - цифры этого числа. Данное число можно представить в виде :
a1*kn-1+a2*kn-2+...+an*k0
Если записать данное выражение, представив все числовые значения в 10 с/с, и вычислить его значение, то получим десятичное представление исходного числа, представленного в произвольной с/с. Этот алгоритм является универсальным для перевода из любой системы счисления в десятичную.
Существует также несложный алгоритм перевода чисел из десятичной системы счисления в произвольную, который является ничем другим, как обратным к алгоритму, рассмотренному выше. Пусть b1..bn - число в 10 с/с. r - основание той системы счисления, в которую мы переводим наше десятичное число. Записываем число b1..bn в виде суммы произведений цифр числа на соответствующую степень основания:
b1..bn=с1*rm+c2*rm-1+...+ci*r0,
так, чтобы значение выражения, стоящего в правой части, было равно числу b1..bn, а c1,...,ci могли бы принимать значения только из допустимого данной с/с множества цифр. Число c1..ci  и будет искомым числом в с/с с основанием r.
Тот же результат будет достигнут если исходное число делить на основание с/с в которую требуется перевести число:
1 шаг. Разделить исходное число на r, зафиксировать остаток от деления (число от 0 до r-1) и частное.
2 шаг. Если частное больше r, то снова разделить его на r, продолжая фиксировать остаток от деления. Процесс деления частных продолжать до тех пор, пока частное не станет меньше r.
3 шаг. Все полученные в процессе деления остатки от деления и последнее частное будут образовывать цифры исходного числа в с/с с основанием r. Выписав все найденные цифры в обратном порядке (начиная с последнего частного), мы и получим искомое представление числа.
Восьмеричная система счисления.

 При внешнем (вне ЭВМ) представлении числовой информации применять двоичную систему счисления с ее громоздкими записями неудобно. В этом случае часто используется восьмеричная система.
В восьмеричной системе числа записываются с помощью восьми цифр: 0,1,2,3,4,5,6,7, а сама восьмерка числом 10.Удобство восьмеричной системы счисления заключается в том, что переход от восьмеричной к двоичной очень прост: достаточно каждую восьмеричную цифру заменить ее двоичным представлением (двоичной триадой)в соответствии с приведенной ниже таблицей.


восьмеричная система счисления 
0
1
2
3
4
5
6
7
двоичная  система счисления 
000
001
010
011
100
101
110
111

Например, 5028 = 101 000 0102
Достаточно прост и обратный переход от двоичной с/с к восьмеричной. Для этого в двоичной записи числа нужно выделить триады (влево и вправо от десятичной точки) и заменить каждую триаду соответствующей восьмеричной цифрой. В случае необходимости неполные триады дополняются нулями.
Например, 1 111 1102 = 001 111 1102 = 1768

Шестнадцатеричная  система счисления.


При подготовке информации для современных ЭВМ и описания характера их работы используется шестнадцатеричная с/с. Для записи чисел в этой системе необходимо располагать шестнадцатью различными символами.
Очевидно, что для первых десяти цифр можно использовать цифры от нуля до девяти - 0,1,2,...,9. Для обозначения остальных используются буквы латинского алфавита - A,B,C,D,E,F, которые соответственно обозначают 10,11,12,13,14 и 15. Переход от шестнадцатиричной к двоичной так же прост, как от восьмеричной к двоичной. Только на этот раз каждую шестнадцатеричную цифру нужно заменить соответствующей двоичной  тетрадой (см. таблицу).

 
десятичная система счисления 
10 11 12 13 14 15 
шестнадцатеричная система счисления 
012345678>9ABCDEF
двоичная система счисления 
0000000100100011010001010110011110001001101010111100110111101111
Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (ведь числа 8 и 16 – соответственно, третья и четвертая степени числа 2).
Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (четверкой цифр).
Чтобы перевести число из двоичной системы в восьмеричную или шестнадцатеричную, его нужно разбить влево и вправо от запятой на триады (для восьмеричной) или тетрады (для шестнадцатеричной) и каждую такую группу заменить соответствующей восьмеричной (шестнадцатеричной) цифрой. >
Например,
+ 1001
    1010
  --------
  10011
При сложении надо помнить в какой с/с введутся расчеты. Вычисления нам легче производить в 10 с/с, но результат каждого выполненного действия мы сразу должны привести в соответствие с рассматриваемой с/с. Так, если получаем число два при сложении чисел в 2 с/с, как в этом примере, то заменяем его на 10, т.к. цифры два в двоичной с/с нет.
 *  11001
     1101
   -----------
  + 11001
+ 11001
 11001
-------------
101000101


Комментариев нет:

Отправить комментарий