Введение
Актуальность исследовательской работы определяется развитием информационных технологий в настоящее время. При работе компьютера используются разнообразные системы счисления. Они помогают отображать данные, а также вести запись чисел и символов на устройстве.
Объект исследования: системы счисления.
Предмет исследования: эффективность использования системы счисления при создании компьютерной техники.
Цель: сравнить между собой различные системы счисления, узнать, какая система счисления наиболее удобна в компьютере и почему, сравнить эту систему счисления с двоичной системой, которая используется в компьютере на сегодняшний день и узнать причину использования в компьютере именно двоичной системы счисления.
Новизна исследования состоит в том, что в своей работе нам удалось охватить само основание, на котором стоит работа компьютера.
Задачи:
Изучить различные системы счисления.
Изучить работу компьютера и использование систем счисления в ней.
Узнать преимущества различных систем счисления и причины популярности некоторых из них.
Сравнить системы счисления между собой.
Проблема: двоичная система счисления не самая эффективная и удобная для человека система счисления
Гипотеза: если использовать более эффективную систему счисления, то компьютерная техника будет эффективнее функционировать.
Оптимальная система счисления
Система счисления — это способ записи чисел с помощью заданного набора специальных знаков (цифр).
Десятичная система – самая древняя система счисления. Она вытекает прямо из анатомии человека, т.к. в древности люди считали окружающие предметы по пальцам и если бы у человека было не 10 пальцев на руках, то укоренилось бы другое основание. Кому–то было удобнее считать по фалангам 4 пальцев одной руки, указывая на них большим – так получила некоторую популярность 12-ричная система счисления. Это просто сила привычки – использовать не потому, что удобнее всего, а потому, что так сложилось исторически, в силу традиции. В компьютерах используется двоичная система счисления. Но, почему в компьютере используется двоичная система счисления, ведь она не самая эффективная?
Для того чтобы сравнить эффективность систем счисления между собой воспользуемся следующим приёмом. Допустим, что мы попали на необитаемый остров. Чтобы не потерять связь с остальным миром, условимся вести счёт дней с помощью камушков. Оказалось, что на этом острове всего было найдено 60 камушков. Необходимо определить такую систему счисления, которая будет наиболее оптимальна и позволит написать максимальное число дней.
Постановка задачи выглядит следующим образом. Под экономичностью системы счисления будем понимать то количество чисел, которое можно записать в данной системе счисления с помощью определённого набора цифр, который мы используем в алфавите заданной системы счисления. Речь в данном случае идет не о количестве разрядов, а об общем количестве сочетаний цифр, которые интерпретируются как различные числа. Например, чтобы написать тысячу чисел (от 0 до 999) в десятичной системе счисления, нам нужно 30 цифр (от нуля до 9 на каждый из трёх разрядов), потому что каждый разряд десятичной системы счисления - от 0 до 9 (всего 10 цифр), и таких разрядов 3. Получается, что нам необходимо 30 цифр. Теперь можно с помощью этих 30 цифр записать любое число в этом интервале.
Но что, если мы имеем двоичную систему счисления? Сколько цифр мы можем записать в этом случае? В этом случае мы можем записать по 15 разрядов.
Количество разрядов в числе , а количество цифр – две (0 и 1).
Тогда 215 = 32768, что гораздо больше 103 = 1000
Получается, что при ограниченном наборе цифр мы можем записать больше чисел.
Значит, двоичная система счисления экономичнее десятичной.
Теперь вернемся к контексту решаемой задачи.
Если мы имеем есть n камней (в данном случае 60) и если за основание взять число х, то получится разрядов. При этом всего возможно закодировать x^( ), поскольку x – непосредственно основание.
Т. е. с помощью 60 камней мы можем закодировать:
230 |
610 |
302 |
320 |
125 |
601 |
415 |
154 |
|
512 |
203 |
Каждое из этих значений определяет возможное количество адресуемых цифр.
Если мы построим график, то увидим, что максимальное количество цифр приходится на троичную систему счисления. Значит, самая эффективная система счисления – с основание 3. На втором месте по эффективности – система с основанием два.
Выбор системы счисления
Но почему в компьютере используется именно двоичная система счисления, а не троичная? Помимо эффективности системы счисления при создании компьютеров используются несколько критериев.
Главные из них:
простота и надежность электрической базы;
трудоемкость и быстродействие выполнения арифметических операций.
Простота и надежность электрической базы
Для хранения чисел в той или иной системе счисления используются n-позиционные запоминающие элементы. Элемент будет тем проще, чем меньше состояний требуется для запоминания цифры числа, то есть чем меньше основание системы счисления. Двухпозиционными элементами, имеющими два состояния, являются, например:
электромеханическое реле (контакты замкнуты - 1, разомкнуты - 0);
конденсатор (заряжен – 1, разряжен – 0);
полупроводниковый элемент (если открыт, то хранит 0, иначе 1).
Трехпозиционные элементы более редки. Например, конденсатор для запоминания цифр 0 - разряжен, 1- заряжен в одном направлении, 2 – в другом. Таким образом, реализация n-позиционных элементов более сложна, чем двухпозиционных.
Трудоемкость и быстродействие выполнения арифметических операций
Все операции в компьютере выполняются на основе булевой логики.
Основоположником такой логики является английский математик и логик Дж. Буль, положивший в основу своего логического учения аналогию между алгеброй и логикой.
Логическое высказывание – это любое повествовательное предложение, в отношении которого однозначно можно сказать, истинно оно или ложно. Пример 1: предложение «6 - четное число» является высказыванием, т.к. оно истинное.
Любое высказывание может быть либо истинным, либо ложным. Цель алгебры логики — определять истинность логических выражений на основании отдельных высказываний. Истину обозначают как 1, а ложь — как 0.
Существуют предложения, в которых для выяснения истинности или ложности требуются дополнительные сведения. Такие предложения являются высказывательными формами.
Высказывательная форма - повествовательное предложение, которое прямо или косвенно содержит хотя бы одну переменную и становится высказыванием, когда все переменные замещаются своими значениями.
Пример: предложение «площадь поверхности Индийского океана равна 75 млн. км2» - и истинно (значение приближенное, приемлемо на практике) и ложно (указанное значение неточное)
Конъюнкция: логическое умножение или логическое И. В записи обозначается как ∧. Для обозначения конъюнкции применяются также следующие знаки: А ∙ В; А & В, А and В.
А ∧ В дает истину только в том случае, если оба высказывания А и В истинны. Называется логическим умножением, потому что имеет схожий принцип работы: если хоть один из множителей будет равен 0, все выражение будет равно 0.
A |
B |
A ^ B |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Геометрически конъюнкцию можно представить следующим образом: если А, В — это некоторые множества точек, то А ∧ В есть пересечение множеств А и В.
Дизъюнкция: логическое сложение или логическое ИЛИ. В записи обозначается как ∨. Для обозначения дизъюнкции применяются также следующие знаки: А + В; А or В; А | B.
А ∨ В дает истину в том случае, если хотя бы одно из высказываний истинно. Называется логическим сложением за схожесть: если складывать только 0 и 1, чем мы и занимаемся, то достаточно одному слагаемому быть 1, чтобы все выражение не было равно 0.
A |
B |
A v B |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
Геометрически логическое сложение можно представить следующим образом: если А, В — это некоторые множества точек, то А ∨ В — это объединение множеств А и В, т. е. фигура, объединяющая и квадрат, и круг.
Инверсия: логическое отрицание или логическое НЕ. Превращает истину в ложь и наоборот.
A |
¬А |
1 |
0 |
0 |
1 |
Геометрически отрицание можно представить следующим образом: если А — это некоторое множество точек, то A — это дополнение множества А, т. е. все точки, которые не принадлежат множеству.
Эквиваленция, или равенство. Если оба высказывания равны (оба 0 или оба 1), то получим истину, иначе — ложь. Обозначается как ≡.
A |
B |
A≡B |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
Импликация, иначе говоря, следование. Обозначается стрелкой, например А ⇒ В. Если из истины следует ложь, то это автоматически ложь, все остальное — истина.
A |
B |
A ⇒ B |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
Законы алгебры логики
Законы |
Для конъюнкции |
Для дизъюнкции |
Идемпотентность (рефлексивность) |
X X = X |
X X = X |
Коммутативность (переместительный) |
X Y Y X |
X Y Y X |
Ассоциативность (сочетательный) |
(X Y) Z X (Y Z) |
(X Y) Z X (Y Z) |
Дистрибутивность (распределительный) |
X (Y Z) = (X Y) (X Z) |
X(Y Z) = (X Y)(X Z) |
Закон (Правила) де Моргана |
||
Закон поглощения |
X (X Y) X |
X (X Y) X |
Операции с константами |
X 1 = X X 0 = 0 |
X 0 = X X 1 = 1 |
Операции с инверсией |
X = 0 |
X = 1 |
Закон двойного отрицания |
= X |
Законы и аппарат алгебры логики используются при проектировании различных частей компьютеров (память, процессор).
Шестнадцатеричная система счисления
Помимо двоичной системы счисления при создании программ используется шестнадцатеричная система счисления. Почему её используют, если она не самая эффективная? При создании программ программисты часто пользуются записью и чтением информации в регистры процессора. Делается это при помощи двоичных чисел. Представим, что число в регистре хранится в 32 битах. Допустим, это число 00101000110000010010111100000101. Видно, что его даже сложно произнести. Цифр много и это не очень удобно для работы. Можно было бы преобразовать его в десятичную систему счисления для удобства.
Имеем:
001010001100000100101111000001012 =0∙231+0∙230+1∙229+0∙228+1∙227+0∙226+0∙225+0∙224+1∙223+1∙222+0∙221+0∙220+0∙219+0∙218+0∙217+1∙216+0∙215+0∙214+1∙213+0∙212+1∙211+1∙210+1∙29+1∙28+0∙27+0∙26+0∙25+0∙24+0∙23+1∙22+0∙21+1∙20 = 0+0+536870912+0+134217728+0+0+0+8388608+4194304+0+0+0+0+0+65536+0+0+8192+0+2048+1024+512+256+0+0+0+0+0+4+0+1 = 68374912510.
Тогда 001010001100000100101111000001012 = 68374912510.
Получается, что данному числу в десятичной системе счисления соответствует число 683749125. Но, видя данное число, очень сложно сказать, чему равен каждый бит в бинарной системе счисления. На помощь приходит шестнадцатеричная система счисления. Дело в том, что из двоичной системы счисления перейти в шестнадцатеричную систему счисления очень легко, также легко перейти и обратно. Вот как это делается. Все биты числа разделяются на четверки:
0010 1000 1100 0001 0010 1111 0000 0101.
Если исходное число записано без незначащих нулей, то начинам делить по 4 справа. Затем каждой четверке нужно сопоставить шестнадцатеричную цифру, используя следующую таблицу.
1 |
0000 - 0 |
9 |
1000 - 8 |
2 |
0001 - 1 |
10 |
1001 – 9 |
3 |
0010 - 2 |
11 |
1010 - A |
4 |
0011 - 3 |
12 |
1011 - B |
5 |
0100 - 4 |
13 |
1100 - C |
6 |
0101 - 5 |
14 |
1101 - D |
7 |
0110 - 6 |
15 |
1110 - E |
8 |
0111 - 7 |
16 |
1111 - F |
Имеем:
001010001100000100101111000001012 = 28C12F0516.
Зная эту таблицу, можно, увидев подобное число, понять, что старший бит – 0, потому что старший бит находится в единице, если шестнадцатеричное число - цифра от 8 до F, и здесь мы имеем 2. Таким образом легко анализировать значение каждого бита.
Известно, что 8 бит – 1 байт. Каждая цифра шестнадцатеричной системы счисления обозначает 4 бита. Получается, что в шестнадцатеричной системе счисления для представления 1 байта необходимо 2 цифры. Имеем:
28 C1 2F 05
Теперь мы видим, что у нас здесь 32 бита или 4 байта. В десятичной системе счисления этого не видно.
Таким образом программисту удобнее и быстрее записывать команды для процессора.
Заключение
Как уже было сказано выше, быстродействие арифметических операций– это важная параметр, влияющий на выбор используемой системы счисления. Чем меньше основание системы, тем меньше цифр принимают участие в вычислении данных и тем выше быстродействие компьютера.
Например, быстродействие машины в двоичной системе при выполнении булевых операций превышает быстродействие в троичной на 26,2%, а в десятичной — в 2,7 раза.
Несмотря на то, что двоичная система эффективна при создании компьютера, в качестве эксперимента были созданы компьютеры на базе троичной системы счисления.
Троичная система счисления использовалась в компьютере Сетунь, построенном в 50-е годы в МГУ. С 2008 года в университете «California Polytechnic State University of San Luis Obispo» функционирует цифровая компьютерная система TCA2, основанная на троичной системе счисления.
Таким образом, компьютеры на базе троичной системы счисления всё равно существуют, но они не получили распространения в силу того, что они малоэффективны.