Уже описано, как получать двоичный код любого десятичного числа, т.е. переводить его из десятичной системы в двоичную. Рассмотрим теперь обратное действие: перевод числа из двоичной системы счисления в десятичную.
Итак, требуется найти десятичное число по известному двоичному коду этого числа. Воспользуемся представлением вида (2). Коэффициенты аn, an-l ,···,a1, a0 известны. Значит, нужно вычислить значение выражения (2). Рассмотрим примеры. Пусть задан двоичный код 11012. Самый левый — старший бит — имеет номер 3. Следовательно, первое слагаемое равно 1·23. Следующий бит имеет номер 2. Второе слагаемое равно 1·22. Третье слагаемое равно 0·21 четвертое слагаемое равно 1·20. Искомое число есть сумма четырех слагаемых: 1·23+1·22+0·21+1·20=8+4+1=13. Таким образом, 11012=13.
Пусть задан двоичный код 11010112. Число, имеющее такой двоичный код, равно сумме 1·26+1·25+0·24+1·23+0·22+1·21+1·20=64+32+8+2+1=107.
Следовательно, 11010112=107.
В десятичной системе следующее число получается из предыдущего путем прибавления единицы к количеству единиц предыдущего числа.
То же самое происходит при получении двоичного кода следующего числа из двоичного кода предыдущего: к младшему разряду двоичного кода предыдущего числа прибавляется единица.
Правило выполнения операции сложения одинаково для всех систем счисления: если сумма складываемых цифр больше или равна основанию системы счисления, происходит перенос единицы в следующий слева разряд. Таким образом, правила сложения в двоичной системе таковы:
Пользуясь этими правилами, получаем
+ | 112 | |||
12 | ||||
1002=410 | ||||
+ | 102 | |||
12 | ||||
112=310 | ||||
+ | 1002 | |||
12 | ||||
1012=510 | ||||
+ | 1012 | |||
12 | ||||
1102=610 | ||||
+ | 1102 | |||
12 | ||||
1112=710 | ||||
+ | 1112 | |||
12 | ||||
10002=810 |
Возникает вопрос: какое наибольшее десятичное число можно записать в двоичном виде, используя для этой записи заданное число битов?
Наибольшее десятичное число, использующее для записи своего двоичного кода три бита, получается, когда значения всех трех битов равны единице:
1 | 1 | 1 | =1·22+1·21+1·20=22+21+20=4+2+1=7. |
1 байт | = | 8 | битов |
1 Кбайт | = | 1024 | байта |
1 Мбайт | = | 1024 | Кбайта |
1 Гбайт | = | 1024 | Мбайта |
Итак, с помощью двоичных кодов цифры и их последовательности (числа) становятся понятными компьютеру. Процесс преобразования информации представляется в виде схемы:
Информация | Числа | Двоичные коды |
Эта схема, читаемая слева направо, отображает способ поступления информации извне в компьютер. Преобразование входной информации в двоичные коды выполняют устройства ввода информации. Эта же схема, читаемая справа налево, отображает способ представления результатов работы компьютера — выходной информации. Преобразование двоичных кодов результирующих данных в выходную информацию выполняют устройства вывода информации.
Память компьютера содержит информацию только в двоичном виде (в виде 0 и 1), и ЦП выполняет действия только с данными, представленными в двоичной системе.
6. Шестнадцатеричная система счисления
Шестнадцатеричная система счисления — это система счисления, в которой основанием является число 16. Любое целое положительное число представляется в этой системе с помощью степеней числа 16 в видеШестнадцатеричной записью целого положительного числа является последовательность коэффициентов ап an-1 ... al a0 из представления (3).
Например:
31210=25610+4810+810=1·162+3·161+8·160=13816.
Для того чтобы представление числа в шестнадцатеричной системе было однозначным, значения коэффициентов при степенях числа шестнадцать должны быть целыми числами от 0 до 15. Если значение коэффициента взять равным 16, то умножение какой-то степени числа 16 на этот коэффициент дает следующую степень числа 16: 16·16n=1·16n+1; 25·16n=(16+9) ·16n=1·16n+1+9·16n.
В качестве коэффициентов для записи чисел в шестнадцатеричной системе берутся шестнадцать символов: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F. Они называются шестнадцатеричными цифрами. Десятичные цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 сохраняют свои значения и в шестнадцатеричной системе: 010=016, 110=116, 910=916. Символы А, В, С, D, Е, F соответствуют десятичным числам от 10 до 15:
1010 | = | A | 1310 | = | D |
1110 | = | B | 1410 | = | E |
1210 | = | C | 1510 | = | F |
Рассмотрим примеры перехода от записи чисел в десятичной системе к их записи в шестнадцатеричной системе:
2710=1610+1110=1·161+1110·160=1·161+B·160=1B16.
Введение шестнадцатеричных цифр А, В, С, D, Е, F является необходимым, т.к. при использовании в качестве коэффициентов в записи шестнадцатеричных чисел 10, 11,...15 появляется неоднозначность в их прочтении. Следующий пример демонстрирует, как в таком случае можно прочесть одно число тремя различными способами:
11016 | = | 1·162 | + | 1 | · | 161 | + | 0 | · | 160 | = | 27210 |
11016 | = | 11 | · | 161 | + | 0 | · | 160 | = | 17610 | ||
11016 | = | 1 | · | 161 | + | 10 | · | 160 | = | 2610 |
Использование шестнадцатеричных цифр приводит к однозначному прочтению чисел:
27210 | = | 11016 |
17610 | = | B016 |
2610 | = | 1A16 |
Применение шестнадцатеричной системы счисления в информатике удобно в связи с тем, что содержимое одного байта можно записать двумя шестнадцатеричными цифрами. Действительно, для записи любой шестнадцатеричной цифры достаточно четырех битов. Максимальная шестнадцатеричная цифра F=1510 имеет двоичный код 1111. Один байт - это 8 битов, которые можно разделить на две части: четыре младших бита с номерами от 0 до 3 и четыре старших бита с номерами от 4 до 7.
Содержимое каждой части можно записать одной шестнадцатеричной цифрой, а содержимое байта — двумя: первая — 4 старших бита, вторая — 4 младших бита.
Таким образом, любое число от 0 до 255 (содержимое 1 байта) можно записать двумя шестнадцатеричными цифрами.
7. Кодировка символов
Компьютеры могут обрабатывать только информацию, представленную в числовой форме. При вводе документов, текстов программ и т.д. (например, вводе с клавиатуры) вводимые символы кодируются определёнными числами, а при выводе их для чтения человеком (на монитор, принтер и т.д.) по каждому числу (коду символа) строится изображение символа. Соответствие между набором символов и их кодами называется кодировкой символов.
Как правило, код символа хранится в одном байте, поэтому коды символов могут принимать значения от 0 до 255. Такие кодировки называются однобайтными, они позволяют использовать до 256 различных символов. Впрочем, в настоящее время всё большее распространение приобретает двухбайтная кодировка Unicode, в ней коды символов могут принимать значения от 0 до 65535. В этой кодировке имеются номера для практически всех применяемых символов (букв алфавитов разных языков, математических, декоративных символов и т.д.).
В графической среде Windows кодовые таблицы, разработанные для IBM PC, являются во многом устаревшими. Действительно в Windows, как правило, не требуются так называемые «псевдографические символы», использовавшиеся в текстовом режиме DOS-программ для рисования линий и диаграмм: в Windows можно нарисовать любые линии или диаграммы непосредственно.