Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LEC02.Нетрадиционные системы счисления

.pdf
Скачиваний:
22
Добавлен:
14.04.2015
Размер:
1.48 Mб
Скачать

Информатика

Учебный год 2014/2015 Кафедра ВТ НИУ ИТМО. Соснин В.В., Балакшин П.В.

Группы 1100, 1101, 1103, 1105, 1106, 1652

Лекция 2

1.Нетрадиционные системы счисления

2.Ограниченная разрядная сетка

3

Факториальная система счисления. Определение

Любое целое число можно представить в виде

n

x=d k k!, где 0 d k k .

k =1

Тогда запись числа х в факториальной системе счисления будет иметь вид (d n d n1 ... d 1 )Ф

Примеры

310Ф = 3*3! + 1*2! + 0*1! = 2010

10610 = w*4! + x*3! + y*2! + z*1! = ...подбор w,x,y,z...= = 4*4! + 1*3! + 2*2! + 0*1! = 4120Ф

4

Факториальная система счисления. Применение

Применение — (де)кодирование перестановок.

Задача. Пусть имеется n=5 чисел (1,2,3,4,5) и нужно найти все их перестановки. Известно, что всего существует n! = 5! =120 таких перестановок. Как найти перестановку, если задан её номер (k) ?

012345

1?????

...

...

k

?????

...

...

119

54321

Решение. Найдем 21-ю перестановку (k = 21). Переведём k в факториальную систему: 21 = 3*3!+ 1*2! + 1*1! = 311Ф. Дополним

его до (n-1) разрядов: 311Ф 0311Ф. Расставим символы по местам:

1) справа от «5» есть 0

меньших цифр (_ _ _ _ 5)

 

2) справа от «4» есть 3

меньшие цифры (4 _ _ _ 5)

ОТВЕТ:

3) справа от «3» есть

1

меньшая цифра (4 _ 3 _ 5)

4 2 3 1 5

4) справа от «2» есть

1

меньшая цифра (4 2 3 _ 5)

 

5

Система счисления Цекендорфа

n Любое целое число можно представить в виде

x=d k Fk , где d k {0,1}, а F kчисла Фибоначчи.

k =1

Каждое ЧФ есть сумма двух предыдущих ЧФ:

Fk = {1, 1, 2, 3, 5, 8, 13, …} , где k = 0, 1,... . Запись числа х в системе Цекендорфа будет иметь вид (d n d n1 ... d 1 )Ц

Пример неоднозначности:

1610 = 8+5+2+1 = 13+3, т.е. 1610 = 11011ц = 100100ц

Чтобы исключить неоднозначность, ввели запрет на использование двух соседних единиц

(т. е. 1610=100100ц, а 11011ц является ошибочной записью).

Применение: минимизация необходимого числа зёрен, кодирование данных с маркером завершения «11».

6

Система счисления Бергмана

Любое действительное число можно представить в виде

x= d k zk ,

где d k {0,1 }, а z= 1+5

 

k=−∞

2

Число z — число золотой пропорции. Запись числа х в системе Бергмана будет иметь вид (…d 2 d 1 d 0 , d 1 d 2 d 3 …)Б

Примеры

210 = 10,01Б = z1+z-2 310 = 100,01Б = z2+z-2

Применение: контроль арифметических операций, коррекция ошибок, самосинхронизация кодовых последовательностей при передаче по каналу связи.

7

Другие системы счисления

1. Нега-позиционные (с отрицательным основанием). Примеры в нега-десятичной системе счисления:

123-10 = 1·(-10)2 + 2·(-10)1 + 3·(-10)0 = 100 − 20 + 3 = 8310

58-10 = 5·(-10)1 + 8·(-10)0 = − 50 + 8 = -4210

Числа с чётным количеством цифр — отрицательные.

2. Симметричные (с отрицательными цифрами).

Примеры в симметричной пятеричной системе счисления, где вместо привычных цифр {0, 1, 2, 3, 4} используются {-2, -1, 0, 1, 2}:

20210= (2)·54 + (0)·53 + (-2)·52 + 1·51 + 0·50 = 1250 - 50 + 5 = 120510

20210= (-2)·54 + (0)·53 + 2·52 + (-1)·51 + 0·50 = -1250 + 50 - 5 = -120510 Симметричные СС определены только для нечётных оснований

Главная особенность СС1 и СС2 – не требуется специального знака для обозначения отрицательных чисел!

Представление отрицательных чисел в

8

 

ограниченной двоичной разрядной сетке

 

Проблема:

в ЭВМ нет способа обозначить знак «МИНУС» перед числом. Способы решения проблемы:

1. Специальный знаковый бит

+5 = 01012, -5 = 11012 (первый бит означает знак числа)

2. Фиксированное смещение

-5 = 00002, -4 = 00012, …, +10 = 11112 (все числа уменьшены на 5)

3. Нега-двоичная система счисления

-4 = 1100-2, +5 = 0101-2 (основание СС равно «-2»).

4. Обратный (инверсный) код

+5 = 01012, -5 = 10102 (инвертируются все биты )

5. Дополнительный код

+5 = 01012, -5 = 10112 (инвертировать все биты, прибавить 1)

Представление отрицательных чисел

9

 

в дополнительном коде

 

Условия

Компьютер имеет разрядную сетку 10 бит.

Как будет выглядеть число «-2» на этом компьютере?

Решение

1 шаг: записать число «+2», используя все доступные разряды

210 = 00000000102

2 шаг: инвертировать каждый бит полученного числа:

00000000102 → 111111111012

3 шаг: в столбик прибавить 1

111111111012 + 00000000012 111111111102

4 шаг: радоваться результату -210 = 111111111102

Проверка решения 2 + (-2) = 0 → 00000000102 +111111111102

100000000002 – это ноль, т. к. 17-го разряда нет

Флаги состояния

После любой арифметической операции процессор автоматически заполняет регистр флагов.

10