понедельник, 3 декабря 2012 г.

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


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

Системы счисления
Числа могут быть представлены в различных системах счисления. Значение числа остается неизменным при любой форме его представления. Число с одним и тем же значением может быть записано по-разному. Способ представления числа определяется системой счисления.
Система счисления — это способ записи чисел с помощью заданного набора специальных знаков — цифр.
Системы счисления делятся на позиционные и непозиционные.
Непозиционные — это системы счисления, в которых «весовое» значение цифры не зависит от ее позиции в записи числа.
Из непозиционных систем счисления наиболее распространенной или известной можно считать римскую систему счисления. В ней числа обозначаются латинскими буквами: 1 — I, 5 — V, 10 — X, 50 — L, 100 — С, 500 — D, 1000 — М.
Запись чисел в такой системе громоздка и неудобна, но еще более неудобным оказывается выполнение в ней даже самых простых арифметических операций.
В настоящее время для представления чисел применяются в основном позиционные системы счисления.
Позиционные — это системы счисления, в которых значение каждой цифры в изображении числа определяется ее положением (позицией) в ряду других цифр.
Любая позиционная система счисления характеризуется основанием.
Основание позиционной системы счисления — это количество различных цифр, используемых для записи числа.
Если для записи числа используются две цифры, то система счисления — двоичная, три — троичная и т. д. Цифры, используемые в системе счисления, упорядочены в соответствии с их «весовыми» значениями. В десятичной системе счисления используется 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. В этом ряду цифры упорядочены по своим значениям. Например, цифра 7 имеет большее значение, чем цифра 5..
Позиции цифр, отсчитываемые от какой-то начальной точки, называются разрядами.
Примером позиционной формы записи чисел является та, которой мы пользуемся (арабская). Так, в числах 123 и 321 значения цифры 3, например, определяются ее положением в числе: в первом случае она обозначает три единицы, а во втором – три сотни.
В позиционной системе счисления любое число N с заранее заданной точностью может быть представлено в следующем виде:
где R — основание системы счисления, а  — возможные цифры,
р — величина, определяющая местоположение разделительного знака (запятая) между целой и дробной частями,
п — величина, определяемая требуемой точностью представления числа (число разрядов).
Если р < 0, то число N — дробное, если 0 <р < п, то число N — смешанное, и если р> п, то число N — целое.
Запись числа по формуле называется развернутой формой записи.
Например, число 2345,56 в десятичной системе счисления запишется так:
2345,56 = 2 * 103 + 3 • 102 + 4 • 101- 5 • 100 + 5 • 10 -1+ 6 * 10 -2,
Обычно для записи чисел используется свернутая форма (сокращенная) в следующем виде:
N = а1аг..аn (2.2)
Компьютеры строятся на базе двоичных цифровых устройств (триггеров, регистров, счетчиков и т. п.). Поэтому основной системой счисления, применяемой в компьютере, является двоичная система.
Как недостаток можно отметить быстрый рост числа разрядов, необходимых для записи чисел. В компьютере кроме двоичной системы счисления применяется восьмеричная и шестнадцатеричная. В восьмеричной системе счисления используется восемь цифр: 0, 1, 2, 3, 4, 6, 7. В шестнадцатеричной — шестнадцать цифр, первые 10 от 0 до 9 и остальные латинскими буквами: 10 — А, 11 — В, 12 — С, 13 — D, 14 — E,15 — F.
Чтобы различать числа, относящиеся к той или иной системе счисления, записывают их обычно с нижним индексом: (23)5, 235, 23(5)

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

Выписав все остатки, начиная с последнего 3 в обратном порядке,  получим двоичное разложение числа.
23410 = 111010102
Пример. Переведите 7310 в двоичную систему счисления.

Перевод чисел в 10ую систему осуществляется путем составления степенного ряда с основанием той системы, из которой переводится число. Затем подсчитывается общая сумма.
Из 2ой в 10ую систему счисления.
Как узнать чему равно девятизначное двоичное число N=1111101002
Подпишем сверху каждый разряд 876543210 - 1 разряды (степени двойки)
В двоичной системе особую роль играет двойка и ее степени.
Т.о.111110100=1*28 +1*27 +1*26 +1*25 +1*24 +0*23 +1*22 +0*21 +0*20 =1*256+1*128+1*64 +1*32 +1*16 +0*8 +1*4 +0*2 +0*1=256 + 128 + 64 + 32 + 16 + 0 + 4 + 0 +0 =500

Пример. Переведите в десятичную систему счисления:
а) 100112; б) 473,128; в) АС516.
а) 100112 = 1 • 24 + 0 • 23 + 0 • 22 + 1 • 21 + 1 • 2°= 1910 ;
б) 473Д28= 4 * 82+ 7 • 81 + 3 • 80+ 1 • 8-1 + 2 * 8-2= 315,1562510;
в) АС516= 10* 163 + 12 • 161 + 5 • 16°= 275710.

Перевод правильных дробей из десятичной в недесятичную выполняется последовательным умножением дроби на основание той системы, в которую она переводится, до тех пор, пока не получатся все нули, или до необходимой степени точности. Дробь в новой системе записывается в виде целых частей, полученных при умножении, начиная с первой.
Пример. Переведите 0,218 в семеричную систему счисления с точностью до четырех знаков.
Ответ: 0,13457.
Для перевода неправильной десятичной дроби в систему счисления с недесятичным основанием необходимо отдельно перевести целую часть и отдельно дробную.
Пример. Переведите 49,2510 в пятеричную систему счисления.
Перевод целой части
Перевод дробной части

49:5=9 (4)
9:5=(1) (4)
0,25*5=(1),25
     0,25*5=(1),25

144
11

Результат: 144,115
Преобразование дробной части 10ой системы в любую другую
Для перевода дробной части числа в другие системы счисления нужно обратить целую часть в ноль и начать умножение получившегося числа на основание системы, в которую нужно перевести. Если в результате умножения будут снова появляться целые части, их нужно повторно обращать в ноль, предварительно запомнив (записав) значение получившейся целой части. Операция заканчивается, когда дробная часть полностью обратится в нуль.
Для примера переведем 10,625
10 в двоичную систему:
0,625*2 = 1,25
0,250*2 = 0,5
0,5*2 = 1,0
Записав все остатки сверху вниз, получаем 10,625
10 = (1010), (101) = 1010,1012

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

0
000
0
0000

1
001
1
0001

2
010
2
0010

3
011
3
0011

4
100
4
0100

5
101
5
0101

6
110
6
0110

7
111
7
0111

8
1000

9
1001

А
1010

В
1011

С
1100

D
1101

Е
1110

F
1111

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

110
001
001

Для перевода числа из 8ой системы в 2ую достаточно заменить каждую цифру на ее перевод в двоичную систему, представив каждую цифру в виде триады (1 в двоичной системе 1 добавляем до триады впереди 00)

Пример. Переведите в двоичную систему: а) 2АС8Ы;б)205,1416.
а) 2 АС 816 = 1010101100100002;
0010 1010 1100 1000
б) 2 0 5, 1 48 =10000101.00112.
000 101 001 100
Для перехода от двоичной к восьмеричной (шестнадцатеричной) системе двоичное число разбивают от запятой (разделитель целой и дробной части) на группы по три (четыре) разряда влево и вправо соответственно, дополняя при необходимости нулями крайние левую и правую группы. Затем триаду (тетраду) заменяют соответствующей восьмеричной (шестнадцатеричной) цифрой.
Для перевода  из 2ой в 8ую число, записанное в 2ой системе делим на триады справа налево.
Например , 11011100011=11 011 100 011 и заменить каждую группу одной восьмеричной цифрой 2 2 4 2 и получим 2242
8

Преобразование дробной части 2ой системы в 8- и 16-ую
Перевод дробной части осуществляется также, как и для целых частей числа, за тем лишь исключением, что разбивка на группы по 3 и 4 цифры идёт вправо от десятичной запятой, недостающие разряды дополняются нулями справа.
Пример: 1001,01
2 = 001 001, 010 = (0*22 + 0*21 + 1*20) (0*22 + 0*21 + 1*20), (0*22 + 1*21 + 0*20) = (0+0+1) (0+0+1), (0+2+0) = 11,28

Примеры.
а) 100 101 001 1112 45178;
             4 5 17
б) 0110 1100 1110 01012 =6СЕ516.
            6 С Е 5
Перевод из восьмеричной в шестнадцатеричную и обратно осуществляется через двоичную систему с помощью триад и тетрад.
Примеры.
а) 1 3 48 = 0101 11002 = 5С16;
001011100 5 С
б) F 9 А 216 - 001111100 110 100 0102 = 1746428.
6 С Е 5

Задачи:

  1. В системе счисления с некоторым основанием десятичное число 49 записывается в виде 100. Укажите это основание.
  2. Число А8716 представьте в восьмеричной системе счисления.

Домашнее задание:

  1. Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г используется посимвольное кодирование: А-00, Б-11, В-010, Г-011. Через канал связи передается сообщение: ВАГБГВ. Закодируйте сообщение данным кодом. Полученную двоичную последовательность переведите в шестнадцатеричный вид.
  2. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 15 оканчивается на 3.
  3. Боря и Миша едут в поезде и считают столбы за окном: "один, два, .. ". Боря не выговаривает букву "Р", поэтому при счете он пропускает числа, в названии которых есть буква "Р", а называет сразу следующее число без буквы "Р". Миша не выговаривает букву "Ш", поэтому пропускает числа с буквой "Ш". У Бори последний столб получил номер "сто". Какой номер этот столб получил у Миши?


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

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