- Кодирование данных двоичным кодом
Лекция №4.
Кодирование данных двоичным кодом
Для автоматизации работы с данными, относящимися к различным типам, очень важно унифицировать их форму представления. Для этого обычно используют прием кодирования, т.е. выражение данных одного типа через данные другого типа.
Примеры систем кодирования: человеческие языки, азбуки (кодирование языка с помощью графических символов), запись математических выражений, телеграфная азбука Морзе, код Брайля для слепых, морская флажковая азбука и т.п.
Своя система кодирования существует и в вычислительной технике – она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называются двоичными цифрами или бит.
Одним битом можно выразить два понятия: 0 или 1 (да иди нет, черное или белое, истина или ложь и т.п.). Если увеличить количество битов до двух, то уже можно выразить четыре различных понятия – 00 01 10 11. Тремя битами можно закодировать уже восемь различных понятий – 000 001 010 100 101 110 101 111.
Увеличивая на единицу количество разрядов в системе двоичного кодирования, можно увеличить в два раза количество значений, которое можно закодировать: N=2I, где I – число разрядов, N - количество значений.
Компьютер может обрабатывать числовые, текстовые, графические, звуковые и видео данные. Все эти виды данных кодируются в последовательности электрических импульсов: есть импульс (1), нет импульса (0), т.е. в последовательности нулей и единиц. Такие логические последовательности нулей и единиц называются машинным языком.
Система счисления
Рекомендуемые материалы
Что такое система счисления?
Система счисления — это способ записи чисел с помощью заданного набора специальных знаков (цифр). |
Существуют позиционные и непозиционные системы счисления.
В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.
В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая – 7 единиц, а третья – 7 десятых долей единицы.
Сама же запись числа 757,7 означает сокращенную запись выражения
700 + 50 + 7 + 0,7 = 7•102 + 5•101 + 7•100 + 7•10-1 = 757,7.
Любая позиционная система счисления характеризуется своим основанием.
Основание позиционной системы счисления — это количество различных знаков или символов, используемых для изображения цифр в данной системе. |
За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения
an-1 qn-1 + an-2 qn-2+ ... + a1 q1 + a0 q0 + a-1 q-1 + ... + a-m q-m,
где ai – цифры системы счисления; n и m – число целых и дробных разрядов, соответственно.
Какие системы счисления используют специалисты для общения с компьютером?
Кроме десятичной широко используются системы с основанием, являющимся целой степенью числа 2, а именно:
· двоичная (используются цифры 0, 1);
· восьмеричная (используются цифры 0, 1, ..., 7);
· шестнадцатеричная (для первых целых чисел от нуля до девяти используются цифры 0, 1, ..., 9, а для следующих чисел — от десяти до пятнадцати – в качестве цифр используются символы A, B, C, D, E, F).
Почему люди пользуются десятичной системой, а компьютеры — двоичной?
Люди предпочитают десятичную систему, вероятно, потому, что с древних времен считали по пальцам, а пальцев у людей по десять на руках и ногах. Не всегда и не везде люди пользуются десятичной системой счисления. В Китае, например, долгое время пользовались пятеричной системой счисления.
А компьютеры используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами:
· для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток — нет тока, намагничен — не намагничен и т.п.), а не, например, с десятью, — как в десятичной;
· представление информации посредством только двух состояний надежно и помехоустойчиво;
· возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;
· двоичная арифметика намного проще десятичной.
Недостаток двоичной системы — быстрый рост числа разрядов, необходимых для записи чисел.
Почему в компьютерах используются также восьмеричная и шестнадцатеричная системы счисления?
Двоичная система, удобная для компьютеров, для человека неудобна из-за ее громоздкости и непривычной записи.
Перевод чисел из десятичной системы в двоичную и наоборот выполняет машина. Однако, чтобы профессионально использовать компьютер, следует научиться понимать слово машины. Для этого и разработаны восьмеричная и шестнадцатеричная системы.
Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (ведь числа 8 и 16 – соответственно, третья и четвертая степени числа 2).
Двоичная система счисления
Особая значимость двоичной системы счисления в информатике определяется тем, что внутреннее представление любой информации в компьютере является двоичным, т.е. описываемым наборами только из двух знаков (0 и 1).
Перевод из десятичной системы в двоичную
Целая и дробная части переводятся порознь. Для перевода целой части числа необходимо ее разделить на основание системы счисления 2 и продолжать делить частные от деления до тех пор пока частное не станет равным 0. Значение получившихся остатков, взятые в обратной последовательности, образуют искомое двоичное число.
Например,
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. Целая часть произведения будет первой цифрой числа в двоичной системе. Затем, отбрасывая у результата дробную часть, вновь умножаем на 2 и т.д. Конечная десятичная дробь при этом вполне может стать бесконечной (периодической) двоичной.
Например,
0,73 * 2 = 1,46 (целая часть 1)
0,46 * 2 = 0,92 (целая часть 0)
0,92 * 2 = 1,84 (целая часть 1)
0,84 * 2 = 1,68 (целая часть 1) и т.д. 0,73(10) = 0,1011…(2)
Арифметические операции с двоичными числами
При двоичном сложении 1 + 1 возникает перенос 1 в старший разряд, как и в десятичной арифметике. Например,
При двоичном вычитании необходимо помнить, что занятая в ближайшем разряде 1, дает две единицы младшего разряда. Если в соседних старших разрядах стоят нули, то 1 занимается через несколько разрядов. При этом единица, занятая в ближайшем значащем старшем разряде, дает две единицы младшего разряда и единицы во всех нулевых разрядах, стоящих между младшим и тем старшим разрядом, у которого бралась единица.
Вычтем 174 из 197
Деление двоичных чисел происходит с использованием двоичных таблиц умножения и вычитания. Разделим 430 на 10
Восьмеричная и шестнадцатеричная системы счисления
Перевод чисел из десятичной системы в восьмеричную производится также как и в двоичную с помощью умножения и деления, только не на 2, а на 8.
Например, 58,32(10)
58 : 8 = 7 (2 в остатке)
7 : 8 = 0 (7 в остатке)
0,32 * 8 = 2,56
0,56 * 8 = 4,48
0,48 * 8 = 3,84, …
58,32(10) = 72,243…(8)
Перевод чисел из десятичной системы счисления в 16-ричную производится аналогично. 567(10)0 = 237(16)
Соответствие чисел в различных системах счисления
Десятичная | Шестнадцатеричная | Восьмеричная | Двоичная |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 2 | 2 | 10 |
3 | 3 | 3 | 11 |
4 | 4 | 4 | 100 |
5 | 5 | 5 | 101 |
6 | 6 | 6 | 110 |
7 | 7 | 7 | 111 |
8 | 8 | 10 | 1000 |
9 | 9 | 11 | 1001 |
10 | A | 12 | 1010 |
11 | B | 13 | 1011 |
12 | C | 14 | 1100 |
13 | D | 15 | 1101 |
14 | E | 16 | 1110 |
15 | F | 17 | 1111 |
Для перевода целого двоичного числа в восьмеричное необходимо разбить его справа налево на группы по 3 цифры (самая левая группа может содержать менее трех двоичных цифр), а затем каждой группе поставить в соответствие ее восьмеричный эквивалент. Такие группы называют двоичными триадами.
Например,
11011001 = 11 011 001 = 331(8)
Перевод целого двоичного числа в шестнадцатеричное производится путем разбиения данного числа на группы по 4 цифры – двоичные тетрады.
1100011011001 = 1 1000 1101 1001 = 18D9(16)
Для перевода дробных частей двоичных чисел в восьмеричную или шестнадцатеричную системы аналогичное разбиение на триады или тетрады производится от запятой вправо (с дополнением недостающих последних цифр нулями)
Вам также может быть полезна лекция "2 Блок питания ПЭВМ".
0,1100011101(2) = 0,110 001 110 100 = 0,6164(8)
0,1100011101(2) = 0,1100 0111 0100 = С74(16)
Перевод восьмеричных (шестнадцатеричных) чисел в двоичные производится обратным путем – сопоставлением каждому знаку числа соответствующей тройки (четверки) двоичных цифр.
А1F(16) = 1010 0001 1111(2)
127(8) = 001 010 111(2)
Простота подобных преобразований связана с тем, что числа 8 и 16 являются целыми степенями числа 2. Этой простотой объясняется популярность восьмеричной и шестнадцатеричной систем счисления.