
- •V. Формы представления информации в компьютере.
- •V.1. Кодирование в компьютерах числовой информации.
- •Системы счисления и переводы чисел из одной системы счисления в другую.
- •Десятичная:
- •Шестнадцатеричная:
- •Двоично-десятичная:
- •2. Прямой, обратный и дополнительный коды чисел.
- •V.2. Кодирование в компьютерах символьной (алфавитно-цифровой) информации.
- •V.3 Кодирование в компьютерах звуковой информации.
- •V.4 Кодирование в компьютерах визуальной информации.
V. Формы представления информации в компьютере.
V.1. Кодирование в компьютерах числовой информации.
Системы счисления и переводы чисел из одной системы счисления в другую.
Системой счисления называется способ представления (кодирования)
чисел посредством некоторого множества символов, называемых
цифрами.
В любой системе счисления число может быть записано в виде некоторой строчки символов:
аnаn-1аn-2…а1a0,a-1a-2a-3…a-m
где ai – символы из некоторого множества {a},
, – запятая, отделяющая целую часть числа от дробной части.
Системы счисления делятся на два больших класса:
а) позиционные системы счисления;
б) непозиционные системы счисления.
Система счисления называется позиционной, если значение символа
(цифры) определяется не только видом, но и местом расположения
(позицией) в представлении числа.
Непозиционными называются системы счисления, где символы, из
которых состоит представление числа, не имеют самостоятельного
значения, а имеют смысл только взятые в совокупности (например,
коды Грея, Джонсона и др.).
И хотя в ВТ иногда используются непозиционные коды, и даже были разработаны ЭВМ, использующие эти коды, подавляющее число используемых в настоящее время компьютеров используют для представления чисел позиционные системы счисления.
Любое число в позиционной системе счисления может быть представлено в виде:
an·qn + an-1·qn-1 + … + a1·q1 + a0·q0 + a-1·q-1 + a-2·q-2 +…+ a-m·q-m
где: ai – цифра числа;
i – позиция цифры (отрицательные позиции определяют позиции
дробной части числа).
q – основание позиционной системы счисления.
В вычислительной технике используются следующие системы счисления.
1. Двоичная:
q = 2; {a} → 0,1;
Представление числа в двоичной системе счисления обычно обозначается символом B (Binary), поставленным в конце кода числа, например, 101011B.
Восьмеричная:
q = 8; {a} → 0,1,2,3,4,5,6,7;
Представление числа в восьмеричной системе счисления обозначается символом O (Octonory) или Q, например, 1735Q.
Десятичная:
q = 10; {a} → 0,1,2,3,4,5,6,7,8,9;
Представление числа в десятичной системе счисления либо подразумевается по умолчанию, либо обозначается символом D (Decimal), например, 12349D.
Шестнадцатеричная:
q = 16; {a} → 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;
Представление числа в шестнадцатеричной системе счисления обозначается символом H (Hexadecimal), например, 1A9FCH.
Двоично-десятичная:
q = 10; {a} → 0,1,2,3,4,5,6,7,8,9;
но ai – кодируется четырьмя двоичными разрядами.
Поскольку четырьмя двоичными разрядами можно закодировать до 16 символов, а кодируется только 10, то разновидностей двоично-десятичных кодов может быть много, в зависимости от весовых значений позиций этого четырехразрядного двоичного числа. В вычислительной технике наиболее широко используется двоично-десятичный код с весовыми значениями разрядов, соответствующими числам 8421. Поэтому для этого двоично-десятичного кода:
где xi
=
{0,1}; и
;
Представление числа в двоично-десятичной системе счисления обозначается символами BCD (Binary Code Decimal).
Заметим, что при ручной записи на бумаге, систему счисления, в которой представлено число, бывает удобнее указывать в виде индекса после младшего разряда числа, например:
10111012 ; 1012458 ; 2345610 ; 7F5AC16 ; 1001011110002/10,
где индекс 2/10 указывает на двоично-десятичную систему счисления, в которой представлено число.
Правила перевода чисел из одной системы счисления в другую.
a) Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную и наоборот.
Основания восьмеричной и шестнадцатеричной систем счисления кратны степени двойки (8 = 23 , а 16 = 24). Поэтому правила перевода двоичных чисел в восьмеричные и шестнадцатеричные, а также правила перевода чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную систему, аналогичны и весьма просты.
Чтобы перейти от числа, представленного в двоичной системе счисления, к этому же числу, но представленному в восьмеричной или шестнадцатеричной системах счисления, необходимо осуществить следующие действия. Сначала исходное двоичное число следует разбить на группы, соответственно, по тройкам или четверкам двоичных разрядов. А затем двоичные числа в каждой группе представить в виде восьмеричной или шестнадцатеричной цифры. Разбивка двоичного числа на группы двоичных разрядов должна происходить от дробной запятой вправо и влево.
Пусть будет дано двоичное число:
10111001100011010101,11001101101B
После разбивки на группы двоичных разрядов по три и четыре двоичных разряда в каждой, и кодирования каждой группы будем иметь:
2 7 1 4 3 2 5 6 3 3 2
010 111 001 100 011 010 101,110 011 011 010
B 9 8 D 5 C D A
1011 1001 1000 1101 0101,1100 1101 1010
Следовательно, данное двоичное число в восьмеричной и шестнадцатеричной системе счислений будет, соответственно, иметь вид:
2714325,6332Q и B98D5,CDAH.
Чтобы перевести число, представленное в восьмеричной или шестнадцатеричной системах счисления в двоичную систему счисления, надо представить (развернуть) каждый символ исходного восьмеричного или шестнадцатеричного кода в виде двоичных чисел. Например:
111 101 011 010 , 100 101 001 B 1110
1101 1000 0011 0001 , 0010 0101 1001 B
б) Перевод чисел из двоичной системы счисления в двоично-десятичную
и наоборот.
Не вызывает затруднений и перевод чисел из десятичной системы счисления в двоично-десятичную систему и наоборот, поскольку в двоично-десятичной системе каждая десятичная цифра представляется отдельно четырьмя двоичными разрядами (тетрадой) двоичных чисел. Например, при использовании двоично-десятичной системы с весами разрядов 8421 имеем:
в) Перевод чисел, представленных в двоичной, восьмеричной и
шестнадцатеричной системах счисления в десятичные числа.
Перевод чисел из указанных систем счисления в десятичную систему производится представлением данных чисел по общей формуле для позиционных систем счисления, приведенной ранее. При этом все необходимые вычисления производятся в десятичной системе счисления. Приведем примеры.
Из двоичной системы счисления:
Из восьмеричной системы счисления:
Из шестнадцатеричной системы счисления:
г) Перевод представления чисел из десятичной системы счисления в
двоичную, восьмеричную и шестнадцатеричную.
При изложении правил перевода представления чисел из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную рассмотрим только те алгоритмы, в которых все требуемые арифметические вычисления осуществляются в десятичной системе счисления. В этом случае целая часть десятичного числа и дробная его часть преобразовываются по различным алгоритмам.
При преобразовании целого числа или целой части вещественного числа в другую позиционную систему счисления, алгоритм преобразования заключается в последовательном делении этого числа на основание искомой системы счисления. Остатки от этого последовательного деления образуют последовательность цифр в искомой системе счисления. При этом, последний остаток будет являться первой цифрой искомого числа в требуемой системе счисления, а первый – последней.
Преобразование дробной части десятичного числа в дробную часть двоичного, восьмеричного или шестнадцатеричного числа осуществляется путем последовательного умножения этой дробной части на основание искомой системы счисления и выявлении получающейся целой части, при каждом умножении. Эти появляющиеся целые части будут являться цифрами целой части искомого числа в требуемой системе счисления. При этом цифры разрядов будут получаться в прямом порядке (цифрой старшего разряда дробной части числа является первая, полученная после умножения целая часть). Окончание преобразования дробной части числа определяется появлением всех нулей в разрядах, отводимых под дробную часть. Если же такое последовательное умножение до получения нулей в дробной части произведения продолжается очень долго, то, в таких случаях преобразование дробной части числа осуществляется до требующейся погрешности (числа знаков в дробной части).
Для уяснения алгоритмов преобразования десятичных чисел в двоичные, восьмеричные и шестнадцатеричные ниже приведены примеры таких преобразований.
а) Преобразование десятичного числа 419,8125 в двоичную форму
представления.
Преобразование целой части |
Преобразование дробной части |
||||
Целая часть числа или частного |
Делитель |
Остаток |
Дробная часть числа или произведения |
Множитель |
Целая часть после умножения |
|
|
|
|
|
|
419 |
2 |
1 |
0,8125 |
2 |
1 |
209 |
2 |
1 |
0,6250 |
2 |
1 |
104 |
2 |
0 |
0,2500 |
2 |
0 |
52 |
2 |
0 |
0,5000 |
2 |
1 |
26 |
2 |
0 |
0,0000 |
|
|
13 |
2 |
1 |
|
|
|
6 |
2 |
0 |
|
|
|
3 |
2 |
1 |
|
|
|
1 |
2 |
1 |
|
|
|
0 |
|
|
|
|
|
Результат: 110100011,1101В.
б) Преобразование десятичного числа 551,9375 в восьмеричную форму
представления.
Преобразование целой части |
Преобразование дробной части |
||||
Целая часть числа или частного |
Делитель |
Остаток |
Дробная часть числа или произведения |
Множитель |
Целая часть после умножения |
|
|
|
|
|
|
551 |
8 |
7 |
0,9375 |
8 |
7 |
68 |
8 |
4 |
0,5000 |
8 |
4 |
8 |
8 |
0 |
0,0000 |
|
|
1 |
8 |
1 |
|
|
|
0 |
|
|
|
|
|
Результат: 1047,74Q.
в) Преобразование десятичного числа 895,253 в шестнадцатеричную форму представления.
Преобразование целой части |
Преобразование дробной части |
||||
Целая часть числа или частного |
Делитель |
Остаток |
Дробная часть числа или произведения |
Множитель |
Целая часть после умножения |
|
|
|
|
|
|
895 |
16 |
15 |
0,253 |
16 |
4 |
55 |
16 |
7 |
0,048 |
16 |
0 |
3 |
16 |
3 |
0,768 |
16 |
12 |
0 |
|
|
0,288 |
16 |
4 |
|
|
|
0,608 |
16 |
9 |
|
|
|
0,728 |
16 |
11 |
|
|
|
0,648 |
16 |
10 |
|
|
|
… |
… |
… |
|
|
|
… |
… |
… |
Результат: 37F,40C49BAH