Понятие системы счисления. Перевод чисел из одной системы в другую
Системой счисления называется совокупность приемов обозначения чисел. В современном мире распространены порционные системы счисления, в которых значение каждой цифры определяется местом (разрядом), занимаемой в числе этой цифрой. Например, число 6368 можно представить в виде суммы 6х103+3х102+6х101+8х100. Это выражение представить в виде набора ячеек, каждой из которых соответствует позиция десятичного разряда:
Разряд | 3 | 2 | 1 | 0 |
Значение | 6 | 3 | 6 | 8 |
В двоичной системе счисления, применяемой в ЭВМ, самой минимальной единицей представления данных является бит, принимающий только два значения: 0 — бит сброшен и 1 — бит установлен. В основании этой системы счисления лежит число 2, а сама система носит название двоичной. Любое число в двоичной системе записывается в виде последовательности нулей и единиц. Первая позиция двоичных чисел соответствует степени нуля, второе — единице, третье — двойке.
Все компьютеры хранят числа в двоичной форме. Чтобы обеспечить вывод цифр в привычной для пользователя десятичной системы счисления необходим программный перевод из одной системы в другую.
Рассмотрим правила преобразования чисел из десятичной системы в двоичную и обратно.
При переводе числа из десятичной системы в двоичную надо разделить исходное число на основание новой системы — на число два — до получения целого частного. Остаток от деления будет младшим разрядом. Полученное частное необходимо вновь разделить на число два. Этот процесс следует повторять до тех пор пока частное не станет меньше основания. Оно будет являться старшим разрядом числа. Например, алгоритм перевода числа 428 в двоичную систему будет следующим:
428 | : 2 = | 214 | остаток | 0 | это младший разряд |
214 | : 2 = | 107 | остаток | 0 | |
107 | : 2 = | 53 | остаток | 1 | |
53 | : 2 = | 26 | остаток | 1 | |
26 | : 2 = | 13 | остаток | 0 | |
13 | : 2 = | 6 | остаток | 1 | |
6 | : 2 = | 3 | остаток | 0 | |
3 | : 2 = | 1 | остаток | 1 | |
1 | : 2 = | 0 | остаток | 1 | это старший разряд |
Следовательно, число 428 в двоичной форме будет записано как 110101100.
Чтобы перевести числа из двоичной системы в десятичную необходимо сложение поразрядного умножения значение каждого разряда, например: 110101100 = 1*28+1*27+0*26+1*25+0*24+1*23+1*22+0*21+0*20 . Соответственно, двоичное число 110101100 в десятичной системе будет записано числом 428.
Номер разряда | Значение | Номер разряда | Значение |
0 | 1 | 8 | 256 |
1 | 2 | 9 | 512 |
2 | 4 | 10 | 1024 |
3 | 8 | 11 | 2048 |
4 | 16 | 12 | 4096 |
5 | 32 | 13 | 8192 |
6 | 64 | 14 | 16384 |
7 | 128 | 15 | 32768 |
Двоичные числа занимают много место при написании. В них легко можно ошибиться, неправильно определив нужный разряд. Поэтому для облегчения труда программистов в компьютерах используются восьмеричные и шестнадцатеричные системы счисления. В основание первой системы лежит число 8, в основание второй — число 16. Обе эти системы применяются в ЭВМ для записи адресов, машинных команд и данных. Программы перевода от двоичной к восьмеричной (шестнадцатеричной) системой и обратно встроены в любую ЭВМ.
Шестнадцатеричная система распространена на большинстве ЭВМ. В ее основании лежит число 16. Для обозначения чисел 10 … 16 используются латинские буквы A… F. Цифры, записанные в шестнадцатеричной форме счисления компактны.
Ниже приведены примеры представления чисел от 0 до 15 в различных системах счисления. Для исключения путаницы между отдельными системами используют особые формы их обозначений. При указании на десятичную, двоичную или восьмеричную систему основание этой системы указывается в виде нижнего индекса числа: 9410, 10111102, 1368. Числа в двоичной системе могут обозначаться латинской буквой B: 1011110B. При обозначении шестнадцатеричных чисел указывается латинская буква H, например, 5EH.
Десятичная | Двоичная | Восьмеричная | Шестнадцатеричная |
0 | 0000 | 00 | 0 |
1 | 0001 | 01 | 1 |
2 | 0010 | 02 | 2 |
3 | 0011 | 03 | 3 |
4 | 0100 | 04 | 4 |
5 | 0101 | 05 | 5 |
6 | 0110 | 06 | 6 |
7 | 0111 | 07 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
Максимальное значение хранящегося в компьютере числа зависит от количества разрядов (или количества байт). Наиболее просто в памяти компьютера хранятся целые числа. Диапазон значений восьмиразрядного числа заключен в диапазоне от 0 до 255 (для чисел без знака) или в диапазоне от -128 до +127 для чисел со знаком. Если обрабатывается 16-ти разрядное число, то диапазон его представления лежит в пределах от 0 до 65535 или от — 32768 до +32767. Для 32-разрядных чисел этот диапазон значительно увеличен: от 0 до 4294967295 или соответственно от -2147483648 до +2147483647.
Дробные числа могут быть представлены в виде чисел с фиксированной точкой и чисел с плавающей точкой.
При представлении числа с фиксированной точкой положение самой точки запоминается в программе. Все значения следуют одному шаблону. Компьютер работает с такими числами как с целыми, а программа перед выводом данных пользователю вставляет точку в требуемом месте. Например, при фиксированных пяти знаков до и четырех знаков после запятой число 0,6559 будет хранится как 000006559, а число 45584,522 как 455845220.
Для выполнения арифметических действий над числами с фиксированной точкой производится операция масштабирования. В общем случае, операция масштабирования представляет собой процесс умножения или деления в заданной пропорции. В случае обработки чисел с фиксированной точкой масштабирование — есть процесс умножения или деления числа за степень числа десяти, так что оно может быть представлено в виде целого числа. Само число после операции масштабирования носит название мантиссы, а значение степени — порядка числа.
Представление чисел в формате с плавающей точкой является другим распространенным способом записи чисел. Введенное в ЭВМ число разбивается на мантиссу и порядок. Этот процесс носит название нормализации числа. Числа считаются нормализованными, если мантисса М находится в диапазоне от 1 до 0,1.
Например, результатом нормализации числа 246,15 является число 0,24615х103, где число 0,24615 является мантиссой, а число 3 — порядком.
Расположение десятичной точки запоминается самим числом. Арифметические операции выполняются одновременно и над мантиссой и над порядком. При выводе пользователю числа программно могут преобразовываться в обычную форму. Например хранящееся в памяти компьютера число 6556642529 Е -5 будет представлено пользователю как 65566,42529.