Системы счисления,используемые в вычислительной технике

Материал из ТолВИКИ
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 150: Строка 150:
 
     Числа кодируются особым образом. Например, целое число, в зависимости от типа, может кодироваться одним, двумя или четырьмя байтами. Для получения кода положительного целого числа достаточно перевести его из десятичной в двоичную систему счисления, например, десятичное число 12 кодируется как двоичное 00001100 (при однобайтовом типе числа). Отрицательные целые числа часто кодируются в так называемом дополнительном коде, когда старший двоичный разряд используется как признак отрицательности числа, а остальные разряды должны быть такими, чтобы сумма отрицательного числа и его модуля равнялась нулю. Так, десятичное число –1 будет представлено как двоичное 1111111111111111 (при двухбайтовом типе числа). Минимально допустимое двухбайтовое число — 32768 кодируется как 1000000000000000, а максимальное 32767 — как 0111111111111111.
 
     Числа кодируются особым образом. Например, целое число, в зависимости от типа, может кодироваться одним, двумя или четырьмя байтами. Для получения кода положительного целого числа достаточно перевести его из десятичной в двоичную систему счисления, например, десятичное число 12 кодируется как двоичное 00001100 (при однобайтовом типе числа). Отрицательные целые числа часто кодируются в так называемом дополнительном коде, когда старший двоичный разряд используется как признак отрицательности числа, а остальные разряды должны быть такими, чтобы сумма отрицательного числа и его модуля равнялась нулю. Так, десятичное число –1 будет представлено как двоичное 1111111111111111 (при двухбайтовом типе числа). Минимально допустимое двухбайтовое число — 32768 кодируется как 1000000000000000, а максимальное 32767 — как 0111111111111111.
 
     Для вещественных чисел система кодирования является более сложной. Обычно для каждого числа часть байтов отводится для хранения мантиссы числа, а часть — для порядка числа.
 
     Для вещественных чисел система кодирования является более сложной. Обычно для каждого числа часть байтов отводится для хранения мантиссы числа, а часть — для порядка числа.
 +
 +
[[Категория:ТГУ]]

Текущая версия на 08:30, 7 ноября 2011

Автор-составитель: Иванова Ксения

В вычислительной технике используются позиционные системы счисления. Позиционная система счисления определяется целым числом b > 1, называемым основанием системы счисления. Система счисления с основанием b также называется b-ричной (в частности, двоичной, троичной, десятичной и т. п.). Целое число x в b-ричной системе счисления представляется в виде конечной линейной комбинации степеней числа b:[1]

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

Если не возникает разночтений (например, когда все цифры представляются в виде уникальных письменных знаков), число записывают в виде последовательности его b-ричных цифр, перечисляемых по убыванию старшинства разрядов слева направо:[1]

Построение такой записи числа называют позиционным кодированием числа, а саму запись — позиционным кодом числа. Например, число сто три представляется в десятичной системе счисления в виде:

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

С помощью n позиций в b-ричной системе счисления можно записать целые числа от 0 до bn − 1, то есть, всего bn различных чисел.


Позиционные системы счисления

   Изучение систем счисления, которые используются в компьютерах, важно для понимания того, каким образом производится обработка числовых данных в ЭВМ.
   Система счисления — способ записи чисел с помощью заданного набора специальных символов (цифр) и сопоставления этим записям реальных значений. Все системы счисления можно разделить на непозиционные и позиционные. В непозиционных системах счисления, которые появились значительно раньше позиционных, смысл каждого символа не зависит от того места, на котором он стоит. Примером такой системы счисления является римская, в которой для записи чисел используются буквы латинского алфавита. При этом буква I всегда означает единицу, буква — V пять, X — десять, L — пятьдесят, C — сто, D — пятьсот, M — тысячу и т.д. Например, число 264 записывается в виде CCLXIV. Недостатком непозиционных систем является отсутствие формальных правил записи чисел и, соответственно, арифметических действий с многозначными числами. Правила выполнения вычислений с многозначными числами в позиционной системе счисления были разработаны средневековым математиком Мухамедом аль-Хорезми и в Европе были названы алгоритмами (от латинского написания имени аль-Хорезми – Algorithmi).
   В вычислительной технике применяются позиционные системы счисления. Позиционных систем счисления существует множество и отличаются они друг от друга алфавитом — множеством используемых цифр. Размер алфавита (число цифр в нем) называется основанием системы счисления. Последовательная запись символов алфавита (цифр) изображает число. Позиция символа в изображении числа называется разрядом. Разряду с номером 0 соответствует младший разряд целой части числа. Каждому символу соответствует определенное число, которое меньше основания системы счисления. В зависимости от позиции (разряда) числа значение символа умножается на степень основания, показатель которой равен номеру разряда.
   Таким образом, целое положительное число А в позиционной системе счисления можно представить выражением:

(1) или , где p — основание системы счисления, целое положительное число; a — cимвол (цифра); n — номер старшего разряда числа. Обозначения цифр берутся из алфавита, который содержит p символов. Каждой цифре соответствует определенный количественный эквивалент. Обозначение ak следует понимать как цифру в k-м разряде. Всегда выполняется неравенство: ak<p. Запись A(p) указывает, что число А представлено в системе счисления с основанием р: (2)

   Примером системы счисления является всем нам хорошо известная десятичная система счисления. Любое число в ней записывается с помощью цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Важно, что значение каждой цифры зависит от того места, на котором она стоит в этой записи. Например, 1575: цифра 5 в записи числа встречается дважды: цифра 5 в последнем разряде — число единиц, а цифра 5, находящаяся в записи числа левее, — число сотен. Т.к. значение каждой цифры (ее "вес") определяется той позицией, которую цифра занимает в записи числа, то система счисления называется позиционной. В десятичной системе счисления значение единицы каждого разряда в 10 раз больше единицы соседнего с ним правого разряда.
   Само число 10 называется основанием системы счисления, а цифры, используемые в десятичной системе — базисными числами этой системы.
  Но в качестве основания системы счисления можно выбрать любое целое число. Чтобы отличить, в какой системе счисления записано число, будем указывать основание системы счисления в виде индекса в десятичной системе счисления, заключенного в круглые скобки. Если основание системы счисления равно 10 или очевидно из контекста, то индекс будет опущен.
   В компьютере для представления информации используются десятичная, двоичная и шестнадцатеричная системы счисления. Количество цифр, которое требуется для изображения числа в позиционной системе счисления , равно основанию системы счисления р. Например, для записи чисел в двоичной системе счисления требуется две цифры, в десятичной — десять, а в шестнадцатеричной — шестнадцать.
   Двоичная система счисления имеет набор цифр {0, 1}, р=2. В общем виде, используя формулу (1), двоичное число можно представить выражением:

(3) Например, число 101101(2) можно записать так: 101101(2) = 1*25+0*24+1*23+1*22+0*21+1*20 Двоичная система счисления имеет особую значимость в информатике: внутреннее представление любой информации в компьютере является двоичным, т.е. описывается набором символов только из двух знаков 0 и 1. Шестнадцатеричная система счисления имеет набор цифр {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, p = 16. Для изображения чисел в шестнадцатеричной системе счисления требуются 16 цифр. Для обозначения первых десяти цифр используются цифры десятичной системы счисления, шесть остальных — первых шесть прописных букв латинского алфавита. По формуле (1) шестнадцатеричное число может быть представлено так: (4) Пример 1. Число E7F8140 по формуле (4) запишется так:

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

k 1 2 3 4 5 6 7 8 9 10 11 12 2k 2 4 8 16 32 64 128 256 512 1024 2048 4096 16k 16 256 4096 65536 1048576 Соответствие чисел в различных системах счисления Десятичная Шестнадцатеричная Двоичная 0 0 0 1 1 1 2 2 10 3 3 11 4 4 100 5 5 101 6 6 110 7 7 111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111

   Арифметические операции, выполняемые в позиционных системах счисления

В вычислительной технике наиболее часто выполняется операция сложения. Пусть заданы два целых положительных числа в позиционной системе счисления с основанием р. Запишем эти числа в виде: (5) (6) Сумма этих чисел равна числу, которое может быть записано в аналогичном виде: (7)

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

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

   В качестве примера рассмотрим арифметические операции в двоичной системе счисления.
  Арифметические операции над числами в двоичной системе счисления
    Рассмотрим правила выполнения арифметических операций над однозначными числами. Представим их в виде таблиц.

Правила сложения Правила вычитания Правила умножения 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 0 - 0 = 0 0 - 1 = -1 1 - 0 = 1 1 - 1 = 0 0 * 0 = 0 1 * 0 = 0 0 * 1 = 0 1 * 1 = 1 Примеры 1. Сложить два числа: 1010(2) + 10101(2) = 11111(2) 2. Найти разность двух чисел 10101(2) и 1010(2): 10101(2) - 1010(2) = 1011(2) 3. Умножить два числа 1011(2) и 101(2): 1011(2) * 101(2) = 110111(2)

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

Правило 1

   Для перевода чисел из любой системы счисления в десятичную можно воспользоваться выражением (1). Сначала в десятичную систему счисления переводится основание той системы, из которой осуществляется перевод, а затем цифры исходного числа. Результаты подставляются в выражение (1). Полученная сумма дает искомый результат.
   Пример. Перевести в десятичную систему счисления числа С7(16) и 1010(2) :

С7(16) = 12*161 + 7*160 = 192 + 7 =199 (10) ; 1010 (2) = 1*23 + 1*21 = 8+2 10.

Схема Горнера

   Эквивалентными являются алгоритмы для вычисления значения многочлена в некоторой точке х, заданные следующими формулами:

(8) (9)

  Запись (9) носит название вычислительной схемы Горнера.

Например:

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

Пример. Перевести десятичное число 25 в двоичную систему счисления: 25 : 2 = 12 (остаток 1); 12 : 2 = 6 (остаток 0), 6 : 2 = 3 (остаток 0), 3 : 2 = 1 (остаток 1), 1 : 2 = 0 (остаток 1). Таким образом, 25(10) = 11001(2) .

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

Правило 2

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

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

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

12345667(8) = 001 010 011 100 101 110 110 111(2) =

           = 1 010 011 100 101 110 110 111(2).

Правило 4

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

1100111(2) = 001 100 111(2) = 147(8).

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

12345ABCDEF(16) = 1 0010 0011 0100 0101 1010 1011 1100 1101 1110 1111(2); 11001111010 1110(2) = 0110 0111 1010 1110(2) = 67AF(16).

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

1234567(8) = 001 010 011 100 101 110 111(2)

           = 0101 0011 1001 0111 0111(2) = 53977(16);

1267ABC(16) = 0001 0010 0110 0111 1010 1011 1100(2)

       = 010 010 011 001 111 101 010 111 100(2) = 223175274(16).

Кодирование информации

   В качестве наименьшей единицы измерения информации принят 1 бит. 1 бит соответствует одному разряду в двоичной системе счисления. Эта система лежит в основе архитектуры компьютеров. Для представления всего многообразия величин в компьютере объединяют несколько двоичных разрядов. Поэтому более крупными единицами измерения И в компьютере являются: 1 байт = 8 бит; 1 Кбайт=210 байт; 1 Мбайт = 210 Кбайт; 1 Гбайт = 210 Мбайт.
   Поскольку информация в компьютере хранится в дискретной форме, для ее записи используется некоторый конечный набор знаков, называемый алфавитом. Очень часто в качестве алфавита используется таблица кодов, содержащая около 256 знаков. Каждому знаку соответствует числовой код. Этот код хранит образ соответствующего знака в памяти компьютера. Для понимания системы кодирования информации необходимо рассмотреть правила преобразования числовых кодов в различные системы счисления. 
   Наиболее популярна таблица кодов ASCII. Она состоит из 16 строк и 16 столбцов, пронумерованных от 0 до F в 16-ричной системе счисления. Например, в столбце 4 и строке D таблицы расположена заглавная буква М латинского алфавита. Таким образом при записи текста с такой буквой, она будет храниться в памяти в виде кода 4D(16) или 77(10). Другие коды: "," - 2C; "j" - 6A; "2" - 32. Обычно последние 8 столбцов таблицы кодов содержат буквы национальных алфавитов, графические знаки. В большом количестве разновидностей таблицы кодов ASCII первая половина таблицы является неизменной, а вторая - переменной. 
   Таким образом, для хранения одного символа в ASCII-кодировке требуется 1 байт памяти компьютера. Однако 8-битовая кодировка является недостаточной для кодировки всех символов расширенных алфавитов. Все препятствия могут быть сняты при переходе на 16-битовую кодировку Unicode, допускающую 65536 кодовых комбинаций.
   Числа кодируются особым образом. Например, целое число, в зависимости от типа, может кодироваться одним, двумя или четырьмя байтами. Для получения кода положительного целого числа достаточно перевести его из десятичной в двоичную систему счисления, например, десятичное число 12 кодируется как двоичное 00001100 (при однобайтовом типе числа). Отрицательные целые числа часто кодируются в так называемом дополнительном коде, когда старший двоичный разряд используется как признак отрицательности числа, а остальные разряды должны быть такими, чтобы сумма отрицательного числа и его модуля равнялась нулю. Так, десятичное число –1 будет представлено как двоичное 1111111111111111 (при двухбайтовом типе числа). Минимально допустимое двухбайтовое число — 32768 кодируется как 1000000000000000, а максимальное 32767 — как 0111111111111111.
   Для вещественных чисел система кодирования является более сложной. Обычно для каждого числа часть байтов отводится для хранения мантиссы числа, а часть — для порядка числа.
Личные инструменты
наши друзья
http://аудиохрестоматия.рф/