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

ээээээ ээээээээээээээээ

.pdf
Скачиваний:
21
Добавлен:
14.05.2015
Размер:
628.39 Кб
Скачать

отрицательных чисел называется "дополнительный код". Для получения из

положительного числа отрицательного, как и при дополнительном коде,

выполняют инвертирование, после чего к результату добавляется 1.

Неболбьшое усложнение кодирования снимает проблему двойного представления

нуля:

00000000 - исходное

11111111 - после инвертирования

11111111

1

----------

100000000 - после добавления 1

Так как самый старший бит является девятым и в однобайтный регистр не

помещается, он будет отброшен. То есть 0 представляется только как 00000000.

Кодирование называется дополнительным, потому что положительное и

отрицательное числа "дополняют" друг друга до той самой единицы, бит для

хранения которой выходит за пределы регистра. Поэтому и преобразование

отрицательного числа в положительное происходит по тому же правилу:

инверсия и увеличение на 1.

Еще одно преимущество такого представления чисел: появилась возможность

отказаться от операции вычитания. Вместо нее применяется сложение с

отрицательным числом.

Попробуйте выполнить сложение над двоичными числами, записанными в

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

///

!!! подобрать примеры сложения положительных, отрицательных, смешанных чисел !!!

\\\

Все вроде хорошо, но попробуйте в переменную X, объявленную как

var x:integer;

записать положительное число 37000, хранимое без знака (как word),

получим, неожидано, отрицательный результат -28536!

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

работы программы.

///

var x:integer; y:word;

begin

y:=37000; x:=y; writeln(x); readln;

end.

\\\

Ошибка произошла потому, что типы integer и word по разному понимают

содержимое старшего бита регистра.

---===---

Троичная система

Можно ли записывать целые отрицательные числа без знака, но и без

дополнительного кодирования?

Можно! Например, в любой P-ичной уравновешенной системе счисления.

Уравновешенная система с наименишим основанием - это троичная.

В 60-х годах XX столетия в МГУ им. М.В. Ломоносова была создана

троичная ЭВМ "Сетунь", запущенная потом в серию. Для кодирования информации

в этой машине использовалась троичная уравновешенная система счисления,

вместо бита использовался трит, вместо привычной двоичной логики - троичная.

Разработчик этой ЭВМ Николай Петрович Брусенцов.

|||"бит" - место для хранения двоичной цифры - 0 или 1,

|||"трит" - место для хранения цифры троичной системы счисления.

Троичную систему счисления можно построить, как и другие, взяв за

основание число 3. Базой при этом будут числа 1, 3, 9, 27, 81, ..., а цифрами (алфавитом) 0, 1 и 2. Но кто нам мешает в качестве цифр

взять символы { a, 0, 1}, где a равно -1. Глядя на набор цифр, понятно,

почему эту систему назвали уравновешенной, или симметричной. Количество

цифр до цифры 0 такое же ("уравновешено с"), что количество цифр после

цифры 0. "Уравновесить" можно любые системы счисления с нечетным

основанием.

Десятичное число

 

Число в троичной уравновешенной

системе

 

 

положительное

отрицательное положительное

 

отрицательное

 

 

1

-1

1

a

2

-2

1a

a1

3

-3

10

a0

4

-4

11

aa

5

-5

1aa

a11

6

-6

1a0

a10

7

-7

1a1

a1a

Очевидно, знак для представления отрицательных чисел в урвновешенных

системах счисления не нужен!

Если у нас есть хотя бы трицифры, обязательно 0, обязательно 1,

для третьей цифры можем ставить в соответствие отрицательное значение (-1).

Можно ввести отрицательные значения для некотрых цифр СС с четным

основанием, но это приводит к тому, что некоторые числа можно будет

записать разными способами.

///

Для "четверичной" системы счисления можно выбрать и {-1, 0, 1, 2},

и {-2, -1, 0, 1}.

\\\

---===---

Рассмотрим операции сложения и вычитания в троичных системах:

в троичной системе

Сложение

+ 0 1 2

0 0 1 2

1 1 2 10

2 2 10 11

Умножение

*

0

1

2

0

0

0

0

1

0

1

2

2

0

2

11

в троичной уравновешенной системе сложение

+

1

0

1

1

11

1

0

0

1

0

1

1

0

1

11

 

умножение

*

1

0

1

1

1

0

1

0

0

0

0

1

1

0

1

///

сформировать правила построения таблиц сложения и умножения

и правила арифметических операций для целых чисел.

\\\

Числа Фибона́ччи— элементы числовой последовательности, где каждое следующее число образуется суммой двух перед ним стоящих чисел (кроме первых двух).

Фибоначчиева система счисления (фсс)

Для компьютеров, основанных на классической двоичной системе счисления, не всегда можно эффективно решать проблему отсутствия механизма обнаружения ошибок. В 80-х годах XX столетия группа ученых под руководством профессора Алексея Петровича Стахова из Таганрогского радиотехнического института создала опытный экземпляр помехоустойчивого процессора [3]. Этот процессор мог сам контролировать возникающие в его работе сбои. Для кодирования информации была выбрана фибоначчиева система счисления. Ее использование позволило построить удивительный процессор, на званный “Фибоначчи-процессор”, или “Ф-процессор”. И хотя успешная попытка построения помехоустойчивого процессора на основе фибоначчиевой системы счисления носила скорее теоретический, чем практический интерес, изучение этой замечательной системы счисления заслуживает внимания.

Для указания, что число записано в ФСС, будем использовать в нижнем индексе сокращение fib. Например, 10000101fib = 3810.

Числа Фибоначчи — элементы числовой последовательности 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10 946, …, в которой каждое последующее число, начиная с третьего, равно сумме двух предыдущих чисел.

Для формального определения чисел Фибоначчи используют следующее рекуррентное соотношение:

F0 = 1, F1 = 1, Fn = Fn2 + Fn1 .

Последовательность, известная у нас как числа Фибоначчи, использовалась в Древней Индии задолго до того, как стала известна в Европе после изучения и описания ее Леонардо Пизанским Фибоначчи (1170-1250).

ФСС относится к позиционным системам. Алфавитом ФСС являются цифры 0 и 1, а ее базисом — последовательность чисел Фибоначчи 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 … . Обратите внимание, что F0 = 1 в базис не включается.

В табл. перечислены некоторые числа в двоичной и фибоначчиевой системах счисления.

Дес9 8 7 6 5 4 3 2 1 яти- - - - - - - - -

чной й й й й й й й й

е

1 р р р р р р р р р

а а а а а а а а а

2з з з з з з з з з

рр р р р р р р р

3 я я я я я я я я я

д д д д д д д д д

4

5

1

0

2

0

5

0

Ф

и

б

о

н

а

ч

ч

и

е