Системы счисления
Система счисления - совокупность приемов записи чисел. Алфавит системы счисления - упорядоченное множество символов для записи чисел. Цифра - элемент алфавита системы счисления. Основание системы счисления - количество цифр в алфавите. Система счисления определяет способ записи чисел, при котором используются цифры алфавита.
Позиционные системы счисления - системы, в которых значение каждой цифры зависит от ее места в изображении числа. Позиционные системы счисления также называются аддитивно-мультипликативными. Непозиционные системы счисления - системы, в которых значение каждой цифры не зависит от ее места в изображении числа. Непозиционные системы счисления также называются аддитивными.
Примеры систем счисления:
2. Вид числа в позиционной системе счисления
Пусть имеется позиционная система счисления с основанием P и алфавитом AP={0,1,2, ..., P} и вещественное число X, записанное цифрами этого алфавита в виде anan-1an-2...a1a0,a-1a-2...a-m (цифры в записи числа - разряды; разряды нумеруются с 0; n - количество разрядов в десятичной части числа, m - количество разрядов в дробной части числа). Тогда X представимо в виде полинома X=anPn+an-1Pn-1+...+a1P1+a0P0+a-1P-1+a-2P-2+...+a-mP-m.
Основание системы счисления показывает соотношение весов цифр соседних разрядов.
Пример:
1237,089=1*103+2*102+3*101+7*100+0*10-1+8*10-2+9*10-3
В компьютерах используется в основном двоичная система счисления. Одна из основных причин - для ее реализации нужны технические устройства только с двумя устойчивыми состояниями ("есть ток"-"нет тока" и т.д., а не, например, с десятью, - как в десятичной системе счисления). Алфавит A2={0,1}.
Таблица сложения
+ | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |
Таблица умножения
* | 0 | 1 |
0 | 0 | 0 |
1 | 0 | 1 |
Примеры:
101112+11012=1001002; 101112*11012=1001010112; 101112-11012=10102. (Проверьте вручную, используя таблицы сложения и умножения!)
4. Восьмеричная и шестнадцатеричная системы счисления
Двоичная система счисления приводит к громоздкой записи чисел, поэтому для кодирования используют также 8-ю и 16-ю системы счисления. Алфавит A8={0,1,2,3,4,5,6,7}. Алфавит A16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}(используются латинские буквы, т.к. для записи алфавита не хватает арабских цифр).
5. Изображение чисел одной системы счисления с помощью цифр другой системы счисления
Для изображение чисел системы счисления с основанием P с помощью цифр системы счисления с основанием Q (Q<P) используется смешанная система счисления (Q-P)-ичная со старшим основанием P и младшим основанием Q. Для представления числа в смешанной системе счисления каждая его цифра из AP заменяется на соответствующую цифру из AQ, причем используется всегда такое количество Q-ичных разрядов, которое достаточно для представления любой цифры из AP.
Примеры:
Для изображения любой 10-чной цифры требуется 4 двоичных разряда. Тогда 72310=0111 0010 00112-10. Для изображения любой 8-чной цифры требуется 3 двоичных разряда. Тогда 7238=111 010 0112-8.
6. Перевод чисел из некоторой позиционной системы счисления в десятичную систему счисления
Пусть имеется число X, записанное P-ичной системе счисления в виде anan-1an-2...a1a0,a-1a-2...a-m и требуется найти представление X в 10-й системе счисления.
Для перевода необходимо вычислить полином X=anPn+an-1Pn-1+...+a1P1+a0P0+a-1P-1+a-2P-2+...+a-mP-m, где цифры ai заменяются их десятичными изображениями и операции выполняются в 10-й системе счисления.
Примеры:
Пусть
требуется перевести 5478 в 10-чную систему счисления. Запишем число в виде в виде полинома и выполним действия в 10-чной системе счисления. Получим 5*82+4*81+7*80=359. Таким образом, 5478 есть 35910.Пусть требуется перевести DF,316 в 10-чную систему счисления. Запишем число в виде в виде полинома и выполним действия в 10-чной системе счисления. Получим 13*162+15*161+3*16-1=223,1875. Таким образом, DF,316 есть 223,187510.
7. Перевод чисел из десятичной системы счисления в некоторую позиционную систему счисления
7.1 Перевод целых чисел
Пусть целое число X задано в 10-чной системе счисления и требуется перевести его в систему счисления с основанием
Q, т.е. найти цифры bi для записи X=bs*Qs+bs-1*Qs-1+ ... +b0*Q0.Для определения b0 разделим левую и правую части равенства на Q, причем в левой части деление выполняется по правилам 10-чной арифметики. Имеем: X/Q=bsQs-1+bs-1Qs-2+...+b1+b0 /Q. Представим левую часть равенства как сумму целой и дробной частей X/Q=[X/Q]+{X/Q}и приравняем их с целой и дробной частями правой части равенства: [X/Q]=bsQs-1+bs-1Qs-2+...+ b1 и {X/Q}=b0/Q. Таким образом, цифра b0 является остатком от деления X на Q (деление выполняется в 10-чной системе счисления).
Далее положим X1=X/Q=bsQs-1+bs-1Qs-2+...+ b1 и повторим аналогичные действия для определения цифры b1. Цифра b1 является остатком от деления X1 на Q (деление выполняется в 10-чной системе счисления).
Таким образом, перевод числа X осуществляется по следующим рекуррентным формулам:
bi=Q{Xi/Q}, т.е. цифра bi есть остаток от деления Xi на Q;
Xi+1=[Xi/Q], т.е. целая часть от деления Xi на Q (i=0, 1, 2, …; X0=X); процесс продолжается до тех пор, пока не будет получено Xi+1=0.
Словесная формулировка: Для перевода целого 10-чного числа X в систему счисления с основанием Q необходимо X разделить нацело на Q, записанное в 10-чной системе счисления. Затем полученное неполное частное нужно снова разделить нацело на Q. Процесс продолжать до тех пор, пока последнее полученное неполное частное не станет равным нулю. Представлением числа X будет последовательность остатков деления, изображенных одной Q-чной цифрой и записанных в порядке, обратном порядку их получения.
Примеры:
Перевести число 5510 в 2-чную систему счисления. 55=27*2+1; 27=13*2+1; 13=6*2+1; 6=3*2+0; 3=1*2+1; 1=0*2+1. Таким образом, 5510=1101112.Перевести число 205810 в 16-чную систему счисления. 2058=128*16+10; 128=8*16+0; 8=0*16+8. Таким образом, 205810=80A16.
7.2 Перевод дробных чисел
Пусть X - правильная дробь, заданная в 10-чной системе счисления и требуется перевести ее в систему счисления с основанием Q, т.е. найти цифры bi для записи X=b-1*Q-1+b-2*Q-2+ ... +b-m*Q-m.
Для определения bi умножим левую и правую части равенства на Q, причем в левой части умножение выполняется по правилам 10-чной арифметики. Имеем: X*Q=b-1+b-2Q-1+...+b-mQ-m+1. Представим левую часть равенства как сумму целой и дробной частей X*Q=[X*Q]+{X*Q}и приравняем их с целой и дробной частями правой части равенства: [X*Q]=b-1 и {X*Q}=b-2Q-1+...+b-mQ-m+1. Таким образом, цифра b-1 является целой частью от умножения X на Q (умножение выполняется в 10-чной системе счисления). Далее положим X1=X*Q и повторим аналогичные действия для определения цифры b-2.
Таким образом, перевод правильной дроби X осуществляется по следующим рекуррентным формулам:
b-i-1=[Xi*Q].
Xi+1={Xi*Q}, i=0, 1, 2, …; процесс продолжается до тех пор, пока не будет получено Xi+1=0 или не будет получена требуемая точность изображения числа (требуемое количество цифр после запятой).
Словесная формулировка: Для перевода правильной десятичной дроби X в систему счисления с основанием Q необходимо X умножить на Q, записанное в 10-чной системе счисления. Затем дробную часть полученного произведения снова умножить на Q. Процесс продолжать до тех пор, пока последнее полученное произведение не станет равным нулю, либо не будет достигнута требуемая точность изображения числа X. Представлением числа X будет последовательность целых частей полученных произведений, изображенных одной Q-чной цифрой и записанных в порядке их получения.
Примеры
: Перевести число 0,3610 в 2-чную систему счисления c 5 знаками после запятой. 0,36*2=0+0,72; 0,72*2=1+0,44; 0,44*2=0+0,88; 0,88*2=1+0,76; 0,76*2=1+0,52. Таким образом, 0,3610=0,010112. Перевести число 0,3610 в 16-чную систему счисления c 2 знаками после запятой. 0,36*16=5+0,76; 0,76*16=12+0,16. Таким образом, 0,3610=0,5С16.8. Перевод чисел в случае кратных оснований систем счисления
При переводе числа X из P-чной системы счисления в Q-чную в случае, если P=Qk (k - целое положительное), запись XQ-P в смешанной (Q-P)-чной системе счисления тождественно совпадает с записью XQ в Q-чной системе счисления. Например, 8=23 и 16=24, поэтому для записи 8-чного числа в 2-чной системе счисления достаточно заменить каждую его цифру на соответствующее 3-разрядное двоичное число (соответствующую двоичную триаду), а для записи 16-чного числа в 2-чной системе счисления достаточно заменить каждую его цифру на соответствующее 4-разрядное двоичное число (соответствующую двоичную тетраду). А для перевода двоичных чисел в 8-чную и 16-чную системы счисления необходимо разбить число соответственно на триады и тетрады (добавляя при необходимости нули слева от целой части и справа от дробной части) и заменить их на соответствующие 8-чные и 16-чные цифры.
Изменено 04.06.2012 |
© М.Л. Цымблер |