Использование различных кодировок

Лабораторная работа № 1. Представление информации в ЭВМ

Цель работы

Научиться переводить числа в те системы счисления, которые использует ЭВМ, подсчитывать объем занимаемой данными информации и уметь переводить значения количества информации из одних единиц измерения в другие.

 

Задачи лабораторной работы

После выполнения работы студент должен знать и уметь:

 

  1. знать основные приемы работы с позиционными системами счисления;
  2. уметь переводить числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную;
  3. производить обратный перевод из этих систем в десятичную;
  4. уметь переводить значения из одних единиц измерения информации в другие.

Перечень обеспечивающих средств

Для обеспечения выполнения работы необходимо иметь компьютер с операционной системой и методические указания по выполнению работы.

 

Общие теоретические сведения

Система счисления – это способ представления чисел цифровыми знаками и соответствующие ему правила действий над числами.

Системы счисления можно разделить:

 

  • непозиционные системы счисления;
  • позиционные системы счисления.

В непозиционной системе счисления значение (величина) символа (цифры) не зависит от положения в числе.

Самой распространенной непозиционной системой счисления является римская. Алфавит римской системы записи чисел состоит из символов: I – один, V – пять, X – десять, L – пятьдесят, C – сто, D – пятьсот, M – тысяча.
Величина числа определяется как сумма или разность цифр в числе (например, II – два, III – три, XXX – тридцать, CC – двести).
Если же большая цифра стоит перед меньшей цифрой, то они складываются (например, VII – семь), если наоборот – вычитаются (например, IX – девять).

В позиционных системах счисления значение (величина) цифры определяется ее положением в числе.
Любая позиционная система счисления характеризуется своим основанием.
Основание позиционной системы счисления – количество различных цифр, используемых для изображения чисел в данной системе счисления.
Основание 10 у привычной десятичной системы счисления (десять пальцев на руках).
Алфавит: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.
За основание можно принять любое натуральное число – два, три, четыре и т. д., образовав новую позиционную систему: двоичную, троичную, четверичную и т. д.
Позиция цифры в числе называется разрядом.

Представим развернутую форму записи числа:

Aq = an-1qn-1 + … + a1q1 + a0q0 + a-1qn-1 + … + a-mq-m , где

q – основание системы счисления (количество используемых цифр)
Aq – число в системе счисления с основанием q
a – цифры многоразрядного числа Aq
n (m) – количество целых (дробных) разрядов числа Aq

Пример
порядковый номер
2 1 0 -1 -2
2 3 9, 4 510 = 2102 + 3101 + 9100 + 410-1 + 510-2
a2 a1 a0, a-1 a-2


Двоичная система счисления

Официальное «рождение» двоичной системы счисления (в её алфавите два символа: 0 и 1) связывают с именем Готфрида Вильгельма Лейбница. В 1703 г. он опубликовал статью, в которой были рассмотрены все правила выполнения арифметических действий над двоичными числами.

Преимущества:

 

  1. для её реализации нужны технические устройства с двумя устойчивыми состояниями:
    есть ток – нет тока;
    намагничен – не намагничен;
  2. представление информации посредством только двух состояний надежно и помехоустойчиво;
  3. возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;
  4. двоичная арифметика намного проще десятичной.

Недостаток: быстрый рост числа разрядов, необходимых для записи чисел.


Перевод чисел (8) (2), (16) (2)

Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему: каждую цифру заменить эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (четверкой цифр).

Примеры:
53718 = 101 011 111 0012;
5 3 7 1
1A3F16 = 1 1010 0011 11112
1 A 3 F

 

Задание для самостоятельного выполнения

Переведите:

 

  1. 37548 X2
  2. 2ED16 X2

Перевод чисел (2) (8), (2) (16)

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

Примеры:
11010100001112 = 1 5 2 0 78;
1 101 010 000 111
1101110000011012 = 6 E 0 D16
110 1110 0000 1101

 

Задание для самостоятельного выполнения

Переведите:

 

  1. 10111110101011002 X8
  2. 10110101000001102 X16

Перевод чисел (q) (10)

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

Примеры:

 

  1. 1101102 = 125 + 124 + 023 + 122 + 121 + 020 = 5410;
  2. 2378 = 282 + 381 + 780 = 128 + 24 + 7 = 15910;
  3. 3FA16 = 3162 + 15161 + 10160 = 768 + 240 + 10 = 101810.

Задание для самостоятельного выполнения

Переведите:

 

  1. 11000110102 X10
  2. 1628 X10
  3. E2316 X10

Перевод чисел (10) (q)

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

 

200910=310145
7510=10010112
7510=1138
7510=B16

 

Задание для самостоятельного выполнения

Переведите:

 

  1. 14110 X2
  2. 14110 X8
  3. 14110 X16

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

Пример. Перевести из десятичной системы счисления в двоичную число 0,325.

0,375
x 2
–––––
0,750

Выделяем целую часть: 0

0,750
x 2
–––––
1,500

Выделяем целую часть: 1

0,500
x 2
–––––
1,000

В дробной части получили все нули, т. е. число перевелось в двоичную систему счисления точно: 0,0112.

 

Двоичная арифметика

1. Таблица сложения
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 10

2. Таблица вычитания
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
10 – 1 = 1

3. Таблица умножения
0 0 = 0
1 0 = 0
1 1 = 1

Пример. Сложить два числа в двоичной системе счисления.
1 1 0 1 1
+
1 0 1 1 0 1
––––––––––-
1 0 0 1 0 0 0

Количество информации, которое вмещает один символ N-элементного алфавита, равно i = log2N.
Это известная формула Р. Хартли. В 32-значном алфавите каждый символ несет i = log232 = 5 (бит) информации.

Пример 1. Вычислить количество информации в слове «Информатика» при условии, что для кодирования используется 32-значный алфавит.

Решение. Вычислим количество информации, соответствующее 1 символу при использовании 32-значного алфавита: 32 = 2х, х = 5 бит. Слово "Информатика" состоит из 11 символов, получаем 11* 5 = 55 (бит).

Пример 2. Растровый графический файл содержит черно-белое изображение с 2 градациями цвета (черный и белый) размером 800 х 600 точек. Определите необходимый для кодирования цвета точек (без учета служебной информации о формате, авторстве, способах сжатия и пр.) размер этого файла на диске в байтах.

Решение. Поскольку сказано, что изображение двуцветное, следовательно, для указания цвета одной точки достаточно двух значении, кодирующих белый или черный цвет. Два значения могут быть закодированы одним битом. Объем графического файла рассчитывается по формуле V=i*k, где i - глубина цвета, а k - количество точек.
Тогда объем графического файла равен 800 * 600 * 1 бит = 480 000 6ит, учитывая, что 8 бит = 1 байт получаем 480 000 / 8 = 60 000 байтов. В реальности в графических документах кроме описания цвета точек присутствует еще и служебно-дополнительная информация (о формате записи, авторских правах, способах сжатия и пр.).

 

Использование различных кодировок

В кодировке ASCII на каждый символ отводится 1 байт = 8 бит.

В кодировке Unicode на каждый символ отводится 2 байта = 16 бит.

Пример 1. При кодировании с помощью Unicode найти информационный объем фразы «Ученье – свет, а неученье – тьма!».

Решение. Подсчитаем число символов в заданной фразе, учитывая буквы, пробелы и знаки препинания (тире, запятую, восклицательный знак). Всего символов – 33. Вычислим объем фразы: 33 (символа) * 2 (байта) = 66 байт = 528 бит.

Пример 2. Сообщение содержит 4096 символов. Объем сообщения при использовании равномерного кода составил 1/512 Мбайт. Найти мощность алфавита, с помощью которого записано данное сообщение.

Решение. Мощность алфавита – количество символов в алфавите. Переведем информационный объем сообщения в биты.


Для кодирования одного символа отводится

 

Тогда мощность алфавита по формуле Р. Хартли равна N = 2i = 24 = 16.

Пример 3. Сколько секунд потребуется модему, передающему сообщения со скоростью 28 800 бит/с для передачи 100 страниц текста в 30 строк по 60 символов каждая в кодировке ASCII.

Решение. В кодировке ASCII каждый символ занимает 8 бит или 1 байт.
Тогда объем текста равен 100 30 60 8 = 1 440 000 битов.
Для его передачи по модему потребуется

 

секунд.