Двоичная система счисления
Лабораторная работа №1
“Системы счисления”
Цель работы: получение практических навыков перевода чисел между различными системами счисления, а также выполнения арифметических операций в различных системах счисления.
Теоретическая часть
Системы счисления
Системы счисления разделяются на позиционные и непозиционные. Примером непозиционной системы счисления является римская система. Например, число 1994 в этой системе имеет вид
M C M X C I V
В латинской системе счисления каждая буква определяет соответствующую цифру:
M = 1000; D = 500; C = 100; L = 50; X = 10; V = 5; I = 1.
Число получается сложением значений цифр, если после большей цифры идет меньшая цифра, и вычитанием, если имеет место обратный порядок цифр. В приведенном выше примере имеем
1000 - 100 + 1000 - 10 + 100 + 1 + 1 + 1
Значение цифры в римской системе не зависит от положения (позиции) в числе. Поэтому такая система счисления и называется непозиционной.
Непозиционные системы счисления практически непригодны для выполнения арифметических операций.
Примером позиционной системы счисления является привычная для нас десятичная система.
Рассмотрим произвольное число 83887. Это число можно записать как сумму значений отдельных его цифр:
80000 + 3000 + 800 + 80 + 7 .
Как видно из этой записи, значение любой цифры в числе, в частности цифры 8, зависит от ее позиции.
Пусть число, записанное в произвольной позиционной системе счисления, имеет n+1 цифру в целой части и m цифр в своей дробной части:
an, an-1, an-2,..., a2, a1, a0, b1, b2,...,bk,
где ai - i-ая цифра целой части, bj - j-ая цифра дробной части числа.
Тогда значение этого числа можно представить в виде
an*рn + an-1*pn-1 +...+ a1*p1 + a0*p0 + b1*p-1 + b2*p-2 +...+ bk*p-k,
где p - основание системы счисления.
Например, для десятичного числа имеем
83887,45 = 8*104 + 3*103 + 8*102 + 8*101 + 7*100 + 4*10-1 + 5*10-2.
В ЭВМ наиболее часто применяются двоичная, восьмеричная и шестнадцатеричная системы счисления (2, 8 и 16 c/c). При этом восьмеричная и шестнадцатеричная системы счисления используются, как правило, для компактной записи двоичных чисел.
Двоичная система счисления.
Основанием системы счисления является число 2. Количество цифр, используемых для изображения чисел в любой системе счисления, равно основанию этой системы. В 2 с/с для этой цели используются цифры 0 и 1.
Рассмотрим произвольное двоичное число
11010,101 = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3 =
= 16 + 8 + 2 + 1/2 + 1/8 = 26 5/8 = 26,625 (10 с/с)
Представленная выше схема разложения двоичного числа является одновременно схемой перевода из 2 с/с в 10 c/c ( 2 --> 10 ).
Рассмотрим теперь перевод 10 --> 2. Такой перевод производится отдельно для целой и отдельно для дробной частей числа.
Пример. 43,37510 = 101011,0112
43 ¦ 2
42 21 ¦ 2
1 20 10 ¦ 2
1 10 5 ¦ 2
0 4 2 ¦ 2
1 2 1 ¦
0 ¦
<--------------
Деление производится до тех пор, пока не будет получено частное, меньшее делителя. После этого цифры частного и остатков записываются в обратном порядке. В данном случае получим 101011.
В самом деле, мы 5 раз разделили исходное число на 2. Следовательно, в нем 1 раз содержится 2 . Кроме этого, в числе также 0 раз содержится 24 , 1 раз 23 , 0 раз 22 , 1 раз 21 и 1 раз 20.
Тогда можно записать:
1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20,
т.е. мы получили разложение числа по степеням основания 2.
Для перевода дробной части рассмотрим вначале произвольную десятичную дробь. Будем последовательно умножать на 10 исходное число и дробные части получаемых в процессе преобразования чисел до тех пор, пока дробная часть очередного числа не станет равной нулю.
0, ¦ 935 * 10
9, ¦ 35 * 10
3, ¦ 5 * 10
5, ¦ 0
Эта схема показывает, что в исходном числе содержится 9*10-1 (после первого умножения) + 3 * 10-2 (после второго умножения) + 5 * 10-3 (после третьего умножения).
Если вместо умножения на 10 мы будем умножать на число p, то получим перевод дробной части числа в систему счисления с основанием p.
Для исходного числа
0, ¦ 375 * 2
0, ¦ 75 * 2
1, ¦ 5 * 2
1, ¦ 0
Следовательно, 0,37510 = 0,0112.
Конечная десятичная дробь не всегда образует конечную двоичную дробь. Например, для числа 0,4 получим
0, ¦ 4 * 2
0, ¦ 8 * 2
1, ¦ 6 * 2
1, ¦ 2 * 2
0, ¦ 4 * 2
0, ¦ 8 * 2
1, ¦ 6 * 2
..............
0,310 = 0,011001100110... = 0, (0110)2
Естественно, в этом случае полученное двоичное число округляют.