- •Алгоритмы перевода чисел
- •Алгоритм перевода чисел из двоичной системы счисления в систему счисления с основанием 2n
- •Алгоритм перевода чисел из систем счисления с основанием 2n в двоичную систему
- •Какие системы счисления используют специалисты для общения с компьютером?
- •Почему люди пользуются десятичной системой, а компьютеры — двоичной?
- •Арифметические операции в позиционных системах счисления
- •Арифметические операции в восьмеричной системе счисления
- •Компьютерное представление чисел
- •Представление целых чисел в формате с фиксированной запятой
- •Целые числа без знака.
- •Целые числа со знаком: прямой, обратный и дополнительный коды.
- •1) Модуль числа записать в прямом коде в n двоичных разрядах;
- •2) Получить обратный код числа, для этого значения всех бит инвертировать – все единицы заменить на нули и все нули заменить на единицы);
- •3) К полученному обратному коду прибавить единицу. Получим дополнительный код целого числа со знаком.
- •Целые числа в формате с фиксированной точкой, представленные m разрядами
- •Представление вещественных чисел в формате с плавающей запятой
- •Точность представления чисел
Лекция 2
Кодирование числовой информации: позиционные и непозиционные системы счисления. Двоичная система счисления
1. Алгоритмы перевода чисел
1.1.Перевод чисел из одной системы счисления в другую
1.2. Перевод чисел из двоичной системы счисления в систему счисления с основанием 2n
1.3. Перевода чисел из систем счисления с основанием 2nв двоичную систему
2. Арифметические операции в позиционных системах счисления
2.1.Арифметические операции в двоичной системе счисления
2.2. Арифметические операции в восьмеричной системе счисления
3. Компьютерное представление чисел
3.1. Представление целых чисел в формате с фиксированной запятой
3.2.Представление вещественных чисел в формате с плавающей запятой
Представление числовой информации.
С числами связано важное понятие системы счисления.
Система счисления – способ изображения (представления) чисел с помощью знаков или символов, имеющих определенные количественные значения.
Символами могут быть цифры, буквы, значки.
Для записи чисел в различных системах счисления используется некоторое количество отличных друг от друга знаков.
Все системы счисления делятся на две группы: позиционные и непозиционные системы счисления.
В позиционной системе счисления количественное значение каждой цифры зависит от ее места (позиции) в числе.
В непозиционной системе счисления цифры не меняют своего количественного значения при изменении их расположения в числе.
Наиболее известным примером непозиционной системы счисления является римская.
В качестве цифр этой системе счисления используется семь знаков, имеющих следующее количественное значение:
I(1), V(5), X(10), L(50), C(100), D(500), M(1000).
На базе этих цифр строятся числа до 5000.
Значение цифры не зависит от ее положения в числе. Например, в числе ХХХ (30) цифра Х встречается трижды и в каждом случае обозначает одну и ту же величину – число 10, три числа по 10 в сумме дают 30. Числа могут складываться или вычитаться.
Примеры: IV = 4, VI = 6, III = 3, LX = 60, XL = 40, LXXX = 80, XC = 90.
Первая позиционная система счисления была придумана еще в Древнем Вавилоне, причем вавилонская нумерация была шестидесятеричной, то есть в ней использовалось шестьдесят цифр! Интересно, что до сих пор при измерении времени мы используем основание, равное 60.
Наиболее распространенными в настоящее время позиционными системами счисления являются десятичная, двоичная, восьмеричная и шестнадцатеричная.
Каждая позиционная система счисления имеет определенный алфавит и основание.
Основание системы счисление (q) является важным понятием и определяет:
количество различных знаков, используемых для изображения числа в данной позиционной системе счисления;
во сколько раз значение цифр, стоящих на соседних позициях отличаются друг от друга
Цифра, стоящая на i-ой позиции или правильно сказать на i-м разряде может иметь значение в пределах:
0≤ ai ≤q-1,
ai – определяет количество единиц i–го разряда числа.
Основание системы счисления может быть только q≥2
q 1 2 3 … 8 10 16
ai 0 0÷1 0÷2 … 0÷7 0÷9 0÷15
Десятичная система счисления имеет алфавит, который состоит из десяти всем известных арабских цифр от 0 до 9 и основание, равное 10.
Восьмеричная – восемь цифр от 0 до 7 и основание 8.
Шестнадцатеричная – десять цифр от 0 до 9 и шесть первых прописных или строчных букв латинского алфавита A (a), B (b), C(c), D(d), E(e), F(f) и основание 16.
Примеры чисел, представленных в кодированном виде в позиционных системах счисления: 975,4810, 348, 41D16, 101102.
Позиционный характер этих систем легко понять на примере развернутой формы реальной записи одного из чисел:
975,4810=9•102+7•101+5•100+4•10-1+8•10-2
В общем случае запись любого вещественного числа в позиционной системе счисления представляется в виде:
А = ± am-1 am-2 ... ai… a1 a0, a-1 a-2 … a-n.
Здесь m- количество целых разрядов, n - количество дробных разрядов, m+n- разрядность числа.
Такая формальная запись числа в q-системе (c основанием q) представляет собой разложение в ряд по степеням q:
Аq=±am-1•qm-1 + am-2 •qm-2 + …+ai•qi+ …+ a0•q0 +a-1•q-1 + a-2•q-2 + …+ a-n•q-n (1)
Здесь:
Аq– само число,
q – основание системы счисления,
i – номер разряда,
qi- вес i-го разряда,
ai – значение i-го разряда (ai – одна из цифр данной системы счисления),
Допускается сжатая запись:
Аq=
±
Известно из комбинаторики, что число возможных перестановок из q предметов (цифр) по m местам (разрядам) равно qm.
Это означает, количество различных чисел (M), которое можно представить в q системе m– целыми и n – дробными разрядами qm+n. Только для целых чисел M=qm, для только дробных M=qn.
Диапазоны чисел в q системе с m– целыми и n – дробными разрядами:
0 ÷ qm-1 -целые и q-n ÷1-q-n-дробные
Amax = (q-1) ·qm-1+(q-1) ·qm-2+...+(q-1) ·q1+(q-1) · q0+(q-1) ·q-1+...
+(q-1) · q-n =qm-1+1-q-n = qm-q-n.
Существуют алгоритмы перевода чисел из одних систем счисления в другие.
Алгоритмы перевода чисел
1.1.Перевод чисел из одной системы счисления в другую (перевод из q-системы ->q -систему)
Алгоритм перевода числа из любой системы счисления(q) в десятичную осуществляется просто по формуле:
Аq=
±
=
А10
Перевод в остальные системы счисления производится по следующим правилам.
Для перевода вещественного числа следует переводить его целую и дробную части отдельно.
Пусть переводится из p -> q.
1. Перевод целой части (или простого целого) производится так. Число, представленное в q-системе, необходимо разделить на основание той системы (q), в которую переводится число, и продолжать делить частные от деления до тех пор, пока частное не окажется меньше делителя (q). Значения последнего частного и полученные остатки, записанные в обратной последовательности, образуют целую часть числа в системе с основанием q.
Причем при делении надо помнить, что новое основание (q)должно быть представлено в старой q-системе.
Пример: переведём число 75 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:
Ответ: 7510 = 10010112 = 1138 = 4B16.
2. Для перевода дробной части числа (или числа, у которого «0» целых) необходимо умножить ее на новое основание q. Затем, отбрасывая у результата целую часть, продолжать процесс умножения до тех пор, пока дробная часть произведения не окажется равной нулю или не будет достигнута нужная точность дроби. Целые части произведений, записанные после запятой в прямой последовательности (начиная с первого), образуют дробную часть числа в системе счисления с основанием q.
Пример. Переведем число 0,36 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную
Рассмотрим перевод смешанного числа из десятичной в двоичную систему счисления на примере числа 46,625.
1. Переводим целую часть числа:
Остаток
46:2=23 0
23:2=11 1
11:2=5 1
5:2=2 1
2:2=1 0
1:2 1
Запишем остатки, начиная с последнего 101110, т.е. 4610=1011102
2. Переводим дробную часть числа:
0,625 х 2=1,250
0,250 х 2=0,500
0,500 х 2=1,000
Запишем целые части произведений, начиная с первого – 0,101, т.е. 0,62510 = 0,1012
Ответ: 46,62510 = 101110,1012
Для того чтобы выполнить обратное преобразование (перевод из q системы в десятичную), необходимо число в системе счисления с основанием q записать в развернутом виде и выполнить необходимые вычисления.
Рассмотрим перевод двоичного числа 101110,1012 в десятичное число. Для этого запишем это двоичное число в развернутом виде, используя формулу (1) и выполним необходимые вычисления.
Основание системы: q=2, число разрядов целой части числа: m=6, число разрядов дробной части числа: n=3, цифры двоичной системы счисления а представлены нулем или единицей.
101110,1012=1х25+0х24+1х23+1х22+1х21+0х20+1х2-1+
0х2-2+1х2-3 =32+0+8+4+2+0+1/2+0+1/8=46,62510
Рассмотрим перевод шестнадцатеричного числа 9D,116 в десятичное число:
9D,116=9х161+13х160+1х16-1=144+13+1/16=157,062510
