Site Loader

Системы счисления — Компьютер для новичков

sistema schisleniya

В настоящее время подавляющее число людей являются грамотными и умеют считать. Тем не менее, далеко не все в курсе, что за время человеческой цивилизации было придумано большое количество самых разнообразных систем счисления. Разные народы в различные исторические периоды использовали разные системы счета, которые видоизменялись с течением времени.

Считается, что самая первая система счета у всех народов состояла всего из одного числа, единицы. Соответственно для обозначения, какого то другого числа ее следовало повторить соответствующее количество раз. В качестве обозначения могло выступать что угодно, черточки, крестики и любые другие символы. Отсутствие письменности тоже не помеха, ведь можно использовать камешки, ракушки, плоды, веточки, делать зарубки, вязать узелки и так далее.

Таким образом, для записи числа 4 требовалось собрать 4 камешка или поставить 4 черточки: ||||. Это так называемая единичная система счисления, из которой впоследствии сформировались остальные. Все предельно просто, но очень не удобно для более менее больших чисел. Через какое то время люди догадались упростить запись, объединяя какое то количество элементов в группы и обозначая их другим символом. Чаще всего встречалась группировка по 3 и 5 элементов.

Таким образом, если договориться, что черные камни обозначают единицы, а один белый камень равен 3 черным, то для обозначения допустим 8 чужаков надо показать ●●●●●●●● черных камней или ○ белый и ●●●●● черных или ○○ белых и ●● черных. Любая из этих комбинаций обозначает в нашей условной системе число 8. Такой прием, конечно, заметно упрощал счет. Впоследствии многие народы использовали в качестве обозначения чисел буквы своего алфавита.

Римская система счисления

Одной из таких систем счисления является римская, которая до сих пор находит применение, например, для обозначения веков, цифр на циферблате аналоговых часов, разделов в документе и так далее. В ее основе лежат следующие числа и соответствующие им буквы латинского алфавита.

  • 1 — I
  • 5 — V
  • 10 — X
  • 50 — L
  • 100 — C
  • 500 — D
  • 1000 — M

Все остальные числа получаются их комбинацией в соответствии с определенными правилами, причем 0 в римской системе отсутствует. Хотя сейчас правила довольно вольные и существует множество вариантов их трактовки отличающиеся различной степенью строгости. Мы не будем их расписывать, желающие могут найти их самостоятельно. Приведем лишь несколько примеров записи чисел в римской системе счисления.

  • II — 2
  • IV — 4
  • XVI — 16
  • XXIII — 23
  • XLVIII — 48

Десятичная система счисления

Однако сейчас нам привычна система счисления основанная на цифрах от 1 до 9 и 0, это так называемые арабские цифры, хотя с исторической точки зрения это не совсем так. В итоге получается 10 цифр, поэтому она называется десятичной системой счисления с основанием системы равным 10. Считается, что она обязана своему появлению количеству пальцев на руках, что сильно упрощало жизнь. Ее особенностью является то, что в зависимости от местоположения цифры в числе меняется ее значение. Например, в числе 152 цифра 5 имеет значение 50, поскольку стоит в разряде десятков, а цифра 1 имеет значение 100 так как обозначает сотни. Это так называемая позиционная система счисления.

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

Впрочем, еще относительно недавно в историческом масштабе, вплоть до конца XVIII века на Руси применялась пятеричная система, в которой были только цифры 0, 1, 2, 3, 4 и вытесненная из обихода современной десятичной.

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

Двоичная система счисления

Почти все электронные вычислительные устройства, в том числе компьютеры используют вовсе не привычную для нас десятичную, а двоичную систему счисления, где основанием системы является 2. В ее основе лежит использование всего двух чисел 0 и 1. Это очень удобно для электронных устройств в силу технических причин, поскольку соответствует всего двум состояниям включено (1) и выключено (0) или высокий и низкий сигнал или «истина» и «ложь» и так далее. Наличие всего двух состояний упрощает техническую реализацию, повышает надежность работы, уменьшает габариты и обеспечивает высокую помехоустойчивость цифровых схем, в сравнение с аналоговыми.

В итоге любые числа представлены в виде комбинаций нулей и единиц. Например, число 4 в двоичной системе счисления записывается как 100, но читается каждый символ в отдельности, то есть «один ноль ноль». Это может запутать, поскольку запись числа 4 в двоичной системе счисления внешне не отличается от числа 100 из десятичной. В некоторых ситуациях из-за этого может возникнуть путаница. В таких случаях справа от числа подстрочным шрифтом принято указывать систему счисления, к которой относится данной число в десятичном формате. Числа из нашего примера можно записать следующим образом 4

10 и соответственно 1002. Так же встречается вариант указания перед двоичным числом префиксов 0b или &, то есть 0b100 или &100.

Чтобы перевести десятичное число в двоичное, можно воспользоваться калькулятором расположенным ниже или применить метод Горнера. Для этого нужно десятичное число последовательно делить на основание системы, в данном случае 2. Если результат получается с остатком, то остаток отбрасываем, пишем 1 и снова делим на 2. Если результат получается без остатка, то пишем 0 и снова делим на 2. Запись нулей и единиц осуществляется справа налево, а деление продолжается пока в частном не получится ноль. Рассмотрим это на примере и преобразуем число 11

10 в двоичный вид.

11/2=5 остаток 1
5/2=2 остаток 1
2/2=1 остаток 0
1/2=0 остаток 1

В частном получился ноль, осталось записать получившиеся цифры справа налево от первой к последней и в итоге получаем, что 1110=10112

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

Дано: &1011
1+0*2=1 (на первом шаге предыдущая сумма отсутствует, поэтому 0*2 )
0+1*2=2
1+2*2=5
1+5*2=11
Результат: 1110

Чтобы окончательно вас запутать, стоит упомянуть, что для записи чисел может применяться двоичный код, а система счета при этом использоваться десятичная. Такая комбинация называется двоично-десятичное кодирование и так же находит применение в вычислительной технике.

Шестнадцатеричная система счисления

Неудобством двоичных чисел является их громоздкость и трудность визуального восприятия человеком. Поэтому для представления двоичного кода в информатике широко используется шестнадцатеричная система счисления. Как вы уже наверно догадались, в ней используется шестнадцать символов, цифры от 0 до 9 и латинские буквы A, B, C, D, E, F соответствующие числам от 10 до 15 в десятичной системе. Шестнадцатеричное число может обозначаться словом hex.

Благодаря основанию системы равному 16 для записи 1 байта требуется всего 2 цифры в этой системе, для символов юникода требуется 4 шестнадцатеричных числа (иногда больше). Может использоваться для обозначения цветов в цветовой модели RGB, в програмировании, записи адресов IPv6, представления MAC-адреса сетевого оборудования, кодов ошибок операционных систем, записи хешей,  и так далее.

Чтобы перевести десятичное число в шестнадцатеричное используйте онлайн калькулятор систем счисления в конце статьи или воспользуйтесь алгоритмом, приведенным в примере с двоичной системой. Для примера пересчитаем число 38210

382/16=23 остаток 14, пишем E
23/16=1 остаток 7, пишем 7
1/16=0 остаток 1, пишем 1
Результат: 17E16=38210

Чтобы пересчитать шестнадцатеричное число в десятичное, нужно разбить его на разряды и цифру каждого разряда умножить на 16 в степени соответствующего разряда и сложить получившиеся числа. Проще понять на примере, для этого выполним обратную операцию: 17E16=1*162+7*161+14*160=1*256+7*16+14*1=382

10

Кроме рассмотренных систем существует и большое количество позиционных систем счисления с другими основаниями. Так в компьютерах одно время использовалась система с основанием 8, а такая древняя система счисления как шестидесятеричная, используется и в наше время для обозначения времени, координат и углов.

Калькулятор систем счисления

Работает только с целыми положительными числами.

Системы счисления

СИСТЕМЫ СЧИСЛЕНИЯ

Система счисления — это знаковая система, в которой числа записываются по определенным правилам, с помощью символов некоторого алфавита.

Символы алфавита, которые используют для записи чисел, называют цифрами.

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

Удобная система счисления должна обладать следующими свойствами:

  • простота и краткость записи на материальном носителе

  • однозначность представления

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

  • легкость и наглядность обучения основам работы с числами

Системы счисления бывают:

  1. Позиционные (десятичная)

  2. Непозиционные (римская)

В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.

Изобретение позиционной нумерации, основанной на поместном значении цифр, приписывается шумерам и вавилонянам; развита была такая нумерация индусами и имела неоценимые последствия в истории человеческой цивилизации. К числу таких систем относится современная десятичная система счисления, возникновение которой связано со счётом на пальцах. В средневековой Европе она появилась через итальянских купцов, в свою очередь заимствовавших её у мусульман.

Причины, по которой она оказалась общепринятой, совсем не математического характера. Десять пальцев рук – вот тот первоначальный аппарат для счета, которым человек пользовался с доисторических времен. По пальцам удобно считать от одного до десяти. Сосчитав до десяти, т.е. использовав до конца возможности нашего природного «счетного аппарата», естественно принять само число 10 за новую, более крупную единицу (единицу следующего разряда).

В непозиционных системах счисления величина, которую обозначает цифра, не зависит от положения в числе. При этом система может накладывать ограничения на положение цифр, например, чтобы они были расположены в порядке убывания.

Каноническим примером непозиционной системы счисления является римская, в которой в качестве цифр используются латинские буквы.

Системы счисления, используемые в компьютерах:

Двоичная система счисления.

Для записи чисел используются только две цифры – 0 и 1. Выбор двоичной системы объясняется тем, что электронные элементы, из которых строятся ЭВМ, могут находиться только в двух хорошо различимых состояниях. По существу эти элементы представляют собой выключатели. Как известно выключатель либо включен, либо выключен. Третьего не дано. Одно из состояний обозначается цифрой 1, другое – 0.

Благодаря таким особенностям двоичная система стала стандартом при построении ЭВМ.

Восьмеричная система счисления.

Для записи чисел используется восемь чисел 0,1,2,3,4,5,6,7.  

Шестнадцатеричная система счисления.

Для записи чисел в шестнадцатеричной системе необходимо располагать уже шестнадцатью символами, используемыми как цифры. В качестве первых десяти используются те же, что и в десятичной системе. Для обозначения остальных шести цифр (в десятичной они соответствуют числам 10,11,12,13,14,15) используются буквы латинского алфавита – A,B,C,D,E,F.

Перевод чисел из одной системы счисления в другую.

Перевод чисел из любой системы счисления в десятичную.

Правило перевода чисел из системы с основанием М в десятичную:

Для того чтобы число из любой системы счисления перевести в десятичную систему счисления, необходимо его представить в развернутом виде и произвести вычисления.

(Развернутая форма числа — это запись, которая представляют собой сумму произведений цифр числа на значение позиций.)

Перевод чисел из десятичной системы счисления в другую.

Правило перевода целых чисел из десятичной системы счисления в систему с основанием N:

  1. Последовательно выполнять деление исходного числа и получаемых частных на N до тех пор, пока не получим частное, меньшее делителя.

  2. Полученные при таком делении остатки – цифры числа в системе счисления N – записать в обратном порядке (снизу вверх).

Правило перевода дробных чисел из десятичной системы счисления в систему с основанием N:

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

  2. Полученные при таком умножении целые части — числа в системе счисления N – записать в прямом порядке (сверху вниз).

Правило перевода произвольных (смешанных) чисел из десятичной системы счисления в систему с основанием N:

Перевод произвольных чисел, то есть чисел, содержащих целую и дробную части, осуществляют в два этапа. Отдельно переводится целая часть, отдельно – дробная. В итоговой записи полученного числа целая часть отделяется от дробной запятой.

 

Презентация к уроку по информатике и икт (9 класс) по теме: Компьютерные системы счисления

Слайд 1

КОМПЬЮТЕРНЫЕ СИСТЕМЫ СЧИСЛЕНИЯ МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ

Слайд 2

Ключевые слова алфавит цифра основание позиционная система счисления компьютерные системы счисления двоичная система счисления восьмеричная система счисления шестнадцатеричная система счисления

Слайд 3

Позиционные системы счисления Название Основание Алфавит Двоичная 2 0, 1 Троичная 3 0, 1, 2 Четверичная 0, 1, 2, 3 … … … Восьмеричная 8 … … … Десятичная 10 Одиннадцатеричная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А … … … Шестнадцатеричная Заполните недостающие основания и алфавиты систем счисления

Слайд 4

Позиционные системы счисления Название Основание Алфавит Двоичная 2 0, 1 Троичная 3 0, 1, 2 Четверичная 4 0, 1, 2, 3 … … … Восьмеричная 8 0, 1, 2, 3, 4, 5, 6, 7 … … … Десятичная 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Одиннадцатеричная 11 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А … … … Шестнадцатеричная 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Слайд 5

«Компьютерные» системы счисления

Слайд 6

«Компьютерные» системы счисления Двоичная система используется в компьютерной технике, так как: 1) двоичные числа представляются в компьютере с помощью простых технических элементов с двумя устойчивыми состояниями;

Слайд 7

«Компьютерные» системы счисления Двоичная система используется в компьютерной технике, так как: 2) представление информации посредством только двух состояний надёжно и помехоустойчиво ;

Слайд 8

«Компьютерные» системы счисления Двоичная система используется в компьютерной технике, так как: 3) двоичная арифметика наиболее проста ; + 0 1 0 0 1 1 1 10 * 0 1 0 0 0 1 0 1

Слайд 9

«Компьютерные» системы счисления Двоичная система используется в компьютерной технике, так как: 4 ) существует математический аппарат, обеспечивающий логические преобразования двоичных данных.

Слайд 10

«Компьютерные» системы счисления Двоичный код удобен для компьютера. Человеку неудобно пользоваться длинными и однородными кодами. Специалисты заменяют двоичные коды на величины в восьмеричной или шестнадцатеричной системах счисления.

Слайд 11

Физкультминутка РУКИ — НОГИ Один хлопок — команда рукам: их надо поднять или опустить. Два хлопка — команда ногам: нужно встать или сесть.

Слайд 12

Таблица соответствия 10-х, 2-х, 8-х и 16-х чисел от 0 до 16 Десятичная система Двоичная система Восьмеричная система Шестнадцатеричная система 0 0 0 0 8 1000 1010 А 16 10000

Слайд 13

Таблица соответствия 10-х, 2-х, 8-х и 16-х чисел от 0 до 17 Десятичная система Двоичная система Восьмеричная система Шестнадцатеричная система 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10

Слайд 14

Правило перевода двоичных чисел в восьмеричную систему счисления Разобьем двоичное число на группы по три цифры (триады) справа налево. Каждую триаду заменим на соответствующую цифру в восьмеричной системе счисления. Пример : 10011110100 2 = 10 011 110 100 2 =2364 8

Слайд 15

Правило перевода восьмеричных чисел в двоичную систему счисления Каждую восьмеричную цифру заменим на соответствующую ей триаду в двоичной системе счисления. При этом, если в таблице соответствия в двоичной системе не хватает цифр до триады, то слева приписываем необходимое количество нулей (1→001, 10→010 и т. д.) Пример : 1542 8 = 001 101 100 010 2 =1101100010 2

Слайд 16

Правило перевода двоичных чисел в шестнадцатеричную систему счисления 1. Разобьем двоичное число на группы по четыре цифры (тетрады) справа налево. Пример : 10011110100 2 = 100 1111 0100 2 =4 F 4 16 2. Каждую тетраду заменим на соответствующую цифру в шестнадцатеричной системе счисления.

Слайд 17

Правило перевода шестнадцатеричных чисел в двоичную систему счисления Каждую шестнадцатеричную цифру заменим на соответствующую ей триаду в двоичной системе счисления. При этом, если в таблице соответствия в двоичной системе не хватает цифр до тетрады, то слева приписываем необходимое количество нулей (1→001, 10→010 и т. д.) Пример : 152 16 = 0001 0101 0010 2 =101010010 2

Слайд 18

Опорный конспект

Слайд 19

Опорный конспект Компьютерные системы счисления 2 сс 8 сс 16 сс триада (3) тетрада (4) Таблица соответствия 10 сс, 2 сс, 8 сс, 16 сс

Слайд 20

Заполни таблицу, переведя число из заданной системы счисления в оставшиеся. Задание Основание 2 Основание 8 Основание 16 I вариант 111111 0 II вариант 1101010

Слайд 21

Заполни таблицу, переведя число из заданной системы счисления в оставшиеся. Задание Основание 2 Основание 8 Основание 16 I вариант 111111 0 176 7E II вариант 1101010 152 6A

Слайд 22

Электронные образовательные ресурсы http://metodist.lbz.ru/authors/informatika/3/ppt9kl.php — Авторские мастерские > Информатика > Босова Л.Л. > Набор цифровых образовательных ресурсов для 9 класса > Презентации к главе 1 http://school-collection.edu.ru/catalog/res/78ba290c-0f7c-4067-aaf4-d72f40f49f3b/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog&class=51&subject=19&rub_guid[]=a30a9550-6a62-11da-8cd6-0800200c9a66 — Перевод десятичных чисел в другие системы счисления http://school-collection.edu.ru/catalog/res/fc77f535-0c00-4871-b67c-fa2ecf567d46/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog&class=51&subject=19&rub_guid[]=a30a9550-6a62-11da-8cd6-0800200c9a66 – Задачник http://school-collection.edu.ru/catalog/res/19d0fb95-871d-4063-961d-e7dc5725e555/?from=a30a9550-6a62-11da-8cd6-0800200c9a66&interface=catalog&class=51&subject=19&rub_guid[]=a30a9550-6a62-11da-8cd6-0800200c9a66 – Тренировочный тест

Слайд 23

Самое главное Рефлексия 1. Пройдите за компьютеры заполните небольшую анкету. http://arina-udalova.blogspot.ru/ 2. Вернитесь к Вашему месту за партой.

Слайд 24

Спасибо за урок !

Компьютеры Советской России с троичной сбалансированной системой счисления / Habr


«Возможно, самая красивая система счисления — это сбалансированная троичная» — Дональд Е. Кнут, Искусство программирования, Издание 2.

Многие знают, что компьютеры хранят данные и работают с ними с помощью двоичной системы счисления. Одно из главных объяснений этому можно найти в схеме современных компьютеров, которые состоят из миллиардов простых и массово производимых транзисторов и конденсаторов, которые могут вместе представлять два состояния: высокое напряжение (1) и низкое напряжение (0).

Такая конструкция сегодня настолько распространена, что трудно себе представить, как компьютеры могут работать иначе. Но, в Советской России 50-х годов они работали иначе. Если вы вдруг не слышали про такое, загуглите «Сетунь» — сбалансированный трехкомпонентный компьютер, разработанный в 1958 году небольшой группой во главе с Брусенцовым, в МГУ.

Перед тем, как говорить о Брусенцове и Сетуни, давайте я немного объясню вам троичную сбалансированную систему счисления.


Тернарная или троичная — это система счисления, в которой есть три вероятных значения: 0, 1 и 2. В её сбалансированной версии существуют три вероятности -1, 0 и +1, часто упрощённые до -, 0 и + соответственно.

В такой форме троичные значения подразумеваются в виде «централизованных» вокруг средней точки 0. Применяются те же правила, как и к любой другой системе счисления: самый правый символ, R, имеет собственное значение, а каждый последующий символ имеет значение, умноженное на основание B, возведенное в степень равную расстоянию D от R.

Эмм, давайте я просто приведу пример. Давайте запишем 114:

+++-0 = (1 * 3^4) + (1 * 3^3) + (1 * 3^2) + (-1 * 3^1) + 0
      = 81 + 27 + 9 + -3
      = 114

И в бинарной (двоичной):

1110010 = (1 * 2^6) + (1 * 2^5) + (1 * 2^4) + 0 + 0 + (1 * 2^1) + 0
        = 64 + 32 + 16 + 2
        = 114

И, для уверенности, те же правила, применённые при десятичной системе счисления:

114 = (1 * 10^2) + (1 * 10^1) + (4 * 10^0)
    = 100 + 10 + 4
    = 114

Круто?

Что если мы хотим представить -114? В двоичной и десятичной системах нам понадобится использовать новый символ: знак (sign). В основной памяти двоичного компьютера это осуществляется либо через хранение ведущего бита, указание знака или значительное уменьшение количества чисел, которые мы можем представить1. Именно по этой причине мы говорим о signed и unsigned в языках программирования.

Но в симметричной троичной системе, как мы узнаем позже, чтобы представить обратную величину числа (инвертированное число), нам просто нужно поменять все «+» на «-» и наоборот. Нам не нужна какая-то дополнительная информация, чтобы указать знак!

Вот смотрите:

---+0 = (-1 * 3^4) + (-1 * 3^3) + (-1 * 3^2) + (1 * 3^1) + 0
      = -81 + -27 + -9 + 3
      = -114

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


В конце 50-х годов в мире компьютеров был захватывающий период: Натаниэль Рочестер и его команда в IBM недавно разработали первый серийно выпускаемый компьютер с хранящейся в памяти программой, так называемый «современный» компьютер IBM 701. Джон Бэкус со своей командой изобрели FORTRAN, первый язык программирования высокого уровня, который обрёл широкое применение. И, пожалуй, самое главное — начали развиваться первые целиком транзисторные компьютеры, такие как TX-0 и Philco Transac S-2000. Было задано направление для разработки двоичных компьютеров, которые позже стали доминировать.

Но это было в Северной Америке.

В то же время в России группа математиков и инженеров под руководством Брусенцова и его коллеги Сергея Соболева разрабатывает другие компьютерные системы2. Брусенцов и его коллеги исследуют множество западных компьютеров и технологических достижений, и осмысливают применение транзисторов для представления двоичных данных. Но давайте вспомним, что это СССР — транзисторы не так легко доступны за железным занавесом. А электронные лампы трубки одинаково отстойны как в России, так и на Западе!

Поэтому Брусенцов разрабатывает базовый элемент из миниатюрных ферритовых сердечников и полупроводниковых диодов, который способен работать как регулируемый трансформатор тока. Он оказывается эффективной базой для реализации троичной логики3. Было установлено, что эти элементы, по сравнению с их двоичными аналогами, обеспечивают более высокую скорость и надежность и требуют меньше мощности для работы.

Команда из десяти человек буквально построила Сетунь из ничего, работая в небольшой комнате, заполненной лабораторными столами (которые они же сами и построили!). Каждое утро члены команды собирали пять простых машинных элементов. Они брали ферритовые сердечники и, используя обычную швейную иглу, наматывали на каждый по 52 мотка проволоки. Ядра затем передавали техникам, которые завершали процесс сборки и монтировали их в блоки.

Троичная логика была реализована через объединение двух таких ферритовых элементов и подключения их таким образом, что они моделировали три устойчивых состояния. Этот подход был успешным, но количество необходимых элементов не сокращалось, поскольку в действительности два ферритовых сердечника могут потенциально представлять собой два двоичных бита, что в итоге даёт больший объём информации (2 ^ 2), чем один троичный «трит» (3 ^ 1), Печально, но хотя бы потребляемая мощность была снижена!

Сетунь оперирует числами до 18 тритов, то есть один трит может моделировать любое число между -387 420 489 и 387 420 489. Двоичному компьютеру требуется как минимум 29 битов для достижения такой мощности.

Разработка Сетуни длилась два года, несмотря на то, что система была способна производить операции уже через десять дней с начала испытаний, а в то время подобное было беспрецедентным. Всего было выпущено около 50 машин. И хотя компьютеры Сетунь безотказно работали в течение многих лет в экстремальных российских климатических условиях, проект разрывали противоречия.

В большей степени из-за неспособности завода-изготовителя оправдать массовое производство того, что они расценивали как дешёвую область науки и «плод университетской фантазии». Думаю, можно с уверенностью предположить, что Россия тогда просто была не готова понять потенциальную важность вычислительных машин. В конце концов, машины Сетунь были заменены двоичными аналогами, которые справлялись с вычислениями с той же эффективностью, но стоимость эксплуатации была выше чем в два раза!


Как я уже рассказал, в ней нет необходимости хранить ведущий бит, точнее трит, чтобы указывать знак. А значит, нет понятия целых чисел со знаком или без знака — всё это просто целое число. Таким образом, вычитание достигается простым инвертированием операнда и применением сложения (которое реализуется аналогично компьютерам с двоичной системой). Эта плюс-минус консистенция также может сократить количество переносов, которые требуются для операций умножения.

Ещё одна полезная черта сбалансированной троичной системы (или любой симметричной системы счисления, раз на то пошло) это вероятность реализовать округление чисел с плавающей точкой, явным выделением целой части числа, что даёт возможность упрощённой реализации деления. Это благодаря тому как троичная система выводит дробную часть действительных чисел.

Давайте я приведу простой пример. Перевод в код числа 0.2 выглядит следующим образом:

0.+--+ = 0 + (1 * (3^-1)) + (-1 * (3^-2)) + (-1 * (3^-3)) + (1 * (3^-4))
       = 0.33 + -0.11 + -0.03 + 0.01
       = 0.2

И для записи 0.8 нужно начать с + в старшем разряде, а затем просто инвертировать дробную часть (например, 1 + -0,2):

+.-++- = 1 + (-1 * (3^-1)) + (1 * (3^-2)) + (1 * (3^-3)) + (-1 * (3^-4))
       = 1 + -0.33 + 0.11 + 0.03 + -0.01
       = 0.8

Выше видно, что выделение целой части тритов справа от поразрядной точки эквивалентно округлению: 0,2 становится нулём, а 0,8 становится единицей. Круто!


Ок, возвращаемся к Сетуни в последний раз. В конце 60-х Брусенцов разработал более современную машину «Сетунь-70», которая воплотила тернарность более чётко. Было введено понятие «трайт», который состоял из 6 тритов (примерно 9,5 битов). Компьютер Сетунь-70 был стековым, и поэтому вместо машинных инструкций, которые намеренно назвали регистрами для ввода и вывода, все операции выполнялись в двух стеках — одном для операндов (вход) и одном для возвращаемых значений (выход). Для того, чтобы приспособить этот дизайн, машинные инструкции были написаны в обратной бесскобочной нотации (обратной польской нотации или постфиксной записи).

В конце 70-х годов, Брусенцов и несколько его учеников разработали язык программирования для Сетунь-70, который назвали Диалоговая система структурированного программирования (ДССП). Проводя своё исследование4, я заметил, что это стек-ориентированный язык (что, правда, совсем не удивительно), аналогичный Forth и использует обратную польскую нотацию. Это позволяет писать программы на языке относительно высокого уровня, но продолжать чувствовать себя «низкоуровнево». Настолько, что у его авторов было следующее сообщение:


ДССП не был изобретен. Он был открыт. Поэтому у языка нет версий, только расширения.

Рассмотрим программу на ДССП, которая складывает группу цифр:

1 2 3 4  DEEP 1- DO +

Давайте попробуем разложить её. В первой колонке у нас команда, во второй — состояние компьютера после выполнения (стека операндов), а в третьей я даю объяснение:

1    [1]            Добавить 1 в стек.
2    [2 1]          Добавить 2 в стек.
3    [3 2 1]        Добавить 3 в стек.
4    [4 3 2 1]      Добавить 4 в стек.
DEEP [4 4 3 2 1]    Добавить "глубину стека" (4) в стек.
1-   [-1 4 4 3 2 1] Добавить -1 в стек.
DO   [4 3 2 1]      Начать цикл, удалить два элемента из стека. Для управления циклом первый элемент применяется ко второму пока не получится 0.
+    []             Применить оператор "+" до завершения цикла,
                    каждый раз удаляя верхний элемент из стека операндов, применяя + и добавляя вывод в стек возвратов.

По окончанию исполнения, стек операндов будет пустым, а в стеке возвратов будет [10].

О ДССП подробней написано на сайте Ивана Тихонова (авторы Сидоров С.А. и Шумаков М.Н.).


Развитие сбалансированных тернарных компьютеров практически перешло в небольшую сноску в анналах компьютерной истории. И в то время, как исследование клеток памяти, способных эффективно представлять три различных состояния было незначительным, некоторые достижения в этой области всё же были.

А именно, японские исследователи в конце 90 -х годов описали возможность использовать переход Джозефсона для реализации троичной логики. Этого можно было достичь за счет циркуляции сверхпроводящих токов — положительного (по часовой), отрицательного (против часовой стрелки), или нулевого. Они обнаружили, что это даёт ячейкам памяти «высокоскоростную способность вычислений, низкое энергопотребление и очень простую конструкцию с меньшим количеством элементов, благодаря тернарной операции».

Но я не думаю, что в ближайшем будущем вы часто будете сталкиваться с понятием сбалансированного тернарного компьютера. И что ДССП станет прорывом у агрессивных поклонников языков программирования — тоже. Но я считаю, что из прошлого можно извлечь много мудрых решений5.

(Перевод Наталии Басс)

Сноски:


  1. Это зависит от того, как конкретная машина представляет числа. Дополнительный код — это представление чисел в десятичной системе счисления, которое даёт возможность представить от -((2^n) / 2) до ((2^n) / 2) - 1 в n битах.

2) Хотя компьютер Сетунь был первым электронным устройством, использовавшим для работы тернарную систему, стоит отметить, что идея использования такой системы в вычислительных устройствах впервые была популяризована более 100 лет назад. В 1840 году Томас Фаулер построил вычислительную машину целиком из дерева, и она работала с данными, используя тернарную систему.


  1. Более точное описание можно найти на сайте российского компьютерного музея.


  2. Справочный материал для ДССП на английском языке не слишком доступен, поэтому я предупреждаю, что мои знания ограничены и могут содержать догадки.


  3. Мой собственный вклад можно увидеть на computerpionee.rs.


  4. Изображение в статье взято с сайта Московского суперкомпьютерного комплекса МГУ, на нём одна из машин Сетунь в работе.

Двоичная арифметика. «Компьютерные» системы счисления

Для начала вспомним, что такое двоичная система.

Итак, двоичная система счисления – это позиционная система счисления с основанием два. Алфавит двоичной системы счисления: 0 и 1.

На прошлом уроке мы с вами познакомились с восьмеричной и шестнадцатеричной системами счисления и научились переводить из восьмеричной и шестнадцатеричной систем счисления в десятичную и наоборот.

Сегодня на уроке мы научимся производить арифметические действия в двоичной системе счисления, познакомимся с «компьютерными» системами счисления, а также узнаем, как происходит обмен информацией между компьютерами.

Давайте познакомимся с двоичной арифметикой.

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

  

Для начала научимся слаживать двоичные числа.

Как вы можете видеть первая строка и первый столбец заполнены числами 0 и 1. При сложении всё очень просто.

0 + 0 = 0.

1 +0 = 1.

А вот 1 плюс 1 будет равно числу, состоящему из 1 и 0.

Давайте попробуем сложить два числа: 101002 и 11012. Сложение в столбик такое же, как и в десятичной системе сложения. Запишем наши числа в столбик для сложения.

Начинаем с конца.

0 + 1 = 1.

0 + 0 = 0. Запишем это число.

1 + 1 = 10.

0 пишем под чертой, а 1 запоминаем.

0 + 1 = 1.

Но у нас есть ещё 1, которую мы запомнили, то есть 0 + 1 + 1 = 10. Пишем внизу 0, а 1 запоминаем.

1 + 1 = 10.

Мы с вами произвели сложение двоичных чисел.

А теперь давайте проверим, правильно ли мы всё сделали. Для этого переведём числа, которые нам даны изначально, в десятичную систему. Итак, запишем первое число и проставим степени для двойки справа налево.

Ставим равно и записываем следующее:

Для подсчёта вспомним из математики степени двойки.

Получим:

Числа, которые умножаются на ноль, мы не записывали, так как в результате мы всё равно получаем ноль.

Запишем второе число в двоичной системе счисления и также расставим степени для двойки справа налево.

Ставим равно и записываем следующее:

Ставим равно и сосчитаем:

Необходимо помнить, что любое число в нулевой степени равно единице.

Теперь сложим два числа в десятичной системе счисления.

2010 + 1310 = 3310.

Переведём число 33 в двоичную систему счисления.

33 : 2 = 16 и 1 в остатке. Выделяем остаток.

16 : 2 = 8 и 0 в остатке. Обведём наш остаток.

8 : 2 = 4 и 0 в остатке. Снова выделяем его.

4 : 2 = 2 и 0 в остатке. Обводим остаток.

2 : 2 = 1 и ноль в остатке. И опять обводим остаток от деления.

1 : 2 = 0 и один в остатке. Выделим остаток.

Нам осталось записать все остатки справа на лево.

3310 = 1000012.

Мы перевели число 33 в двоичную систему счисления.

Сравним число, которое получилось при сложении двоичных чисел, и число, которое получилось при переводе числа тридцать три в двоичную систему счисления.

Они равны. Это говорит о том, что мы с вами правильно провели сложение двоичных чисел.

Перейдём к умножению. Снова рассмотри таблицу.

0 ·0 = 0.

0 · 1 =0.

1 · 1 = 1.

Давайте снова разберёмся на примере. Нам даны два числа для умножения: 11012 и 10012. Запишем их в столбик.

Начнём с последней цифры второго числа, умножаем на неё первую цифру справа.

1 ·1 = 1. Запишем эту цифру под чертой.

1 · 0 = 0.

Снова запишем.

1 · 1 = 1.

1 · 1 = 1.

Ставим плюс. Берём вторую цифру 0. А записывать мы должны начинать под второй цифрой справа.

Так как мы знаем, что при умножении на 0 мы всё равно получим нули, то не будем их записывать. Далее третья справа цифра снова 0. И записывать мы должны уже под третьей цифрой.

Но так как у нас снова будут одни нули, не будем записывать эту строку. Идём дальше. Четвёртая цифра 1.

1 · 1 = 1.

Записывать будет под четвёртой цифрой справа налево.

1 · 0 = 0.

1 · 1 = 1

1 · 1 = 1

Нам осталось сложить получившиеся числа уже известным нам образом. Крайних справа 3 цифры сносим вниз, так как к ним ничего не прибавляется.

1 + 1 = 10.

0 записываем, а 1 запоминаем.

Дальше идёт 0, но у нас есть 1, которую мы запоминали, то есть 0 + 1 = 1. Запишем её.

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

Теперь давайте проверим, правильно ли мы решили, уже известным нам способом. Переведём исходные числа в десятичную систему счисления.

Запишем первое и проставим степени для двойки справа налево.

Ставим равно и запишем следующее:

Мы получили число 13.

Теперь переведём второе число. Снова расставим степени для двойки справа налево.

Запишем следующее:

Мы получили число 9.

Теперь перемножим эти числа.

13 · 9 = 117.

Переведём это число из десятичной системы счисления в двоичную. Для этого будем использовать таблицу, так как число большое.

117 : 2 = 58 и один в остатке. Число 58 запишем в ячейку справа от числа 117, а остаток в ячейку под число 117.

58 : 2 = 29 и ноль в остатке. Заполним таблицу.

29 : 2 = 14 и один в остатке. Запишем получившиеся числа в соответствующие ячейки таблицы.

14 : 2 = 7 и ноль в остатке. Снова заполним таблицу.

7 : 2 = 3 и один в остатке. Занесём числа в соответствующие ячейки.

3 : 2 = 1 и один в остатке. Записываем числа в таблицу.

1 : 2 = 0 и один в остатке. 0 никуда записывать не будем. А 1 запишем в пустую ячейку.

Теперь осталось все остатки записать поочерёдно справа на лево.

11710 = 11101012

Мы перевели число 117 в двоичную систему.

А сейчас сравним двоичное число, которое получилось при умножении, и двоичное число, которое получилось при переводе.

Они равны. Значит мы с вами правильно перемножили двоичные числа.

Переходим к «компьютерным» системам счисления.

Как вы уже знаете, вся информация в компьютере закодирована с помощью двоичной системы счисления. В этом есть свои преимущества. Давайте рассмотрим их.

Двоичные числа представляются в компьютере с помощью достаточно простых технических элементов с двумя устойчивыми состояниями. То есть 1 означает наличие чего-либо, например, сигнала, а 0 – его отсутствие.

Представление информации посредством только двух состояний надёжно и помехоустойчиво. Это говорит о том, что в данном случае используется только два сигнала 0 и 1, и нет ничего лишнего, что обеспечивает надёжность и помехоустойчивость сигнала.

Двоичная арифметика наиболее проста. В этом мы с вами убедились, рассматривая примеры на сложение и умножение.

  

Существует математический аппарат, обеспечивающий логические преобразования двоичных данных. Для двоичной системы счисления существует набор операций преобразования выражений, то есть из более сложных в более простые.

При обмене информацией между компьютерами происходит передача двоичных кодов.

Для человека очень сложно пользоваться такими кодами, потому что они имеют большую длину и зрительную однородность, то есть, чтобы выделить нужный фрагмент из кода нужно его внимательно изучить, но так как он большой и в своём составе имеет только единицы и нули, это очень сложно, так как нужно очень внимательно всматриваться в каждый кусочек кода. Поэтому специалисты (программисты и инженеры) на некоторых этапах разработки, создания, настройки вычислительных систем заменяют двоичные коды на аналогичные им величины в восьмеричной или шестнадцатеричной системах счисления.

В результате этого длина исходного кода сокращается в несколько раз. Вспомните, десятичное число двести сорок семь, которое мы с вами переводили на прошлом уроке в двоичную, восьмеричную и шестнадцатеричную системы счисления.

Можно сразу заметить, что числа, представленные в восьмеричной и шестнадцатеричной системах счисления короче, чем число, представленное в двоичной системе счисления. То есть, можно сделать вывод, что замена двоичных кодов на соответствующие им величины в восьмеричной или шестнадцатеричной системах счисления приводит к удобству при их рассмотрении и анализе.

А сейчас пришла пора подвести итоги урока.

Сегодня мы с вами научились выполнять такие арифметические действия над двоичными числами, как сложение и умножение. Также узнали, что у двоичной системы, которая используется в компьютерной технике, есть ряд преимуществ:

·                   двоичные числа представляются в компьютере с помощью достаточно простых технических элементов с двумя устойчивыми состояниями;

·                   представление информации посредством только двух состояний надёжно и помехоустойчиво;

·                   двоичная арифметика наиболее проста;

·                   существует математический аппарат, обеспечивающий логические преобразования двоичных данных.

4.1. Что такое система счисления?

Система счисления — это способ записи чисел с помощью заданного набора специальных знаков (цифр).

Существуют позиционные и непозиционные системы счисления.

В непозиционных системах вес цифры (т.е. тот вклад, который она вносит в значение числа) не зависит от ее позиции в записи числа. Так, в римской системе счисления в числе ХХХII (тридцать два) вес цифры Х в любой позиции равен просто десяти.

В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. Например, в числе 757,7 первая семерка означает 7 сотен, вторая — 7 единиц, а третья — 7 десятых долей единицы.

Сама же запись числа 757,7 означает сокращенную запись выражения

700 + 50 + 7 + 0,7 = 7•102 + 5•101 + 7•100 + 7•10-1 = 757,7.

Любая позиционная система счисления характеризуется своим основанием.

Основание позиционной системы счисления — это количество различных знаков или символов, используемых для изображения цифр в данной системе.

За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения

an-1 qn-1 + an-2 qn-2+ … + a1 q1 + a0 q0 + a-1 q-1 + … + a-m q-m,

где ai — цифры системы счисления; n и m — число целых и дробных разрядов, соответственно.

Например:

Урок информатики. Тема: «Компьютерные системы счисления»

Цели:

  • Образовательные:
    • изучение и усвоение нового материала: компьютерные СС – 2,8,16 СС;
    • изучение и усвоение нового материала: перевод чисел из 2СС в 8,16 СС и наоборот.
  • Воспитательные:
    • повышение мотивации учащихся путем использования нестандартных задач;
    • обеспечение сознательного усвоения материала.
  • Развивающие:
  • развитие мышления при помощи задач, в том числе из КИМ ЕГЭ;
  • совершенствование умственной деятельности с привлечением устного счета.

Опорные понятия:

  • система счисления
  • позиционная и непозиционная системы
  • основание системы
  • алфавит
  • кодирование информации

Задачи учителя:

  • познакомить с компьютерными системами счисления;
  • научить переводу чисел из двоичной в восьмеричную и шестнадцатеричную системы счисления и наоборот.

ХОД УРОКА

1. Организационный момент. (Презентация. Слайд 1)

2. Проверка пройденного материала. (Фронтальный опрос)

  • Что такое системы счисления?
  • Какие бывают системы счисления? Приведите примеры.
  • Основные характеристики позиционной системы счисления (0, разряд)
  • Что такое основание и алфавит позиционной системы счисления?
  • С помощью какого носителя осуществляется кодирование в компьютере? Какие два устойчивых состояния есть?

3. Тема урока: Компьютерные системы счисления. (Слайд 2)Объяснение нового материала.

В основе кодирования информации в компьютере лежит то, что электрический ток имеет всего два устойчивых состояния – есть ток и нет тока. Для удобства принято обозначать наличие тока 1, а отсутствие – 0.
0 и 1 это цифры какой системы счисления? (Слайд 3)
Итак, основная компьютерная система счисления – двоичная, основание 2, цифры 0 и 1. Что же в ней такого особенного?

Используя известные правила перевода, переведите число 3710 в 2СС (все в тетради, один у доски). Ответ: 1001012.

Обратите внимание на то, что у двузначного числа 3710 двоичное представление получилось 6-тиразрядным. Давайте посмотрим, как увеличится разрядность двоичного числа, если десятичное увеличится всего на один разряд. Переведем число 38910 в 2СС (один у доски). Ответ: 110000101.

Мы видим, что разрядность увеличилась основательно. А ведь 398 не самое большое число, обрабатываемое на компьютере. Основная проблема, возникающая при работе с двоичными числами, это их длинная запись. Поэтому ученые – теоретики решили ввести промежуточные компьютерные системы счисления. Как вы думаете, какие основания предложили использовать? (8,16).

Мы с вами составим таблицу, которая содержит основную информацию о СС с основаниями 2,8 и 16. (Слайд 4)

Естественно, для перевода чисел ил 10СС в 8 и 16 СС и обратно, можно использовать знакомые вам правила. Но чаще приходится выполнять переводы из 2СС в 8 и 16 СС и обратно. Как это можно сделать?

Когда я спросила, какие основания взяли для промежуточных СС, вы предположи 8 и 16. Совершенно не зря взяли эти числа. Дело в том, что они очень удачно связаны со степенями двойки.

Связь между основаниями компьютерных СС. (Слайд 5)

2СС – 8СС
23 = 8

Правила перевода: заданное двоичное число делят на группы по три разряда, начиная с права. Каждую группу переводят в десятичную цифру. Полученные десятичные цифры образуют искомое восьмеричное число.

(На слайде – пример перевода. Использование шпоргалки: обратить внимание на то, что цифры больше чем 7 не получится.)
Обратный перевод: (Слайд 6)

Каждая цифра восьмеричного числа представляется тремя двоичными цифрами. Они составляют двоичное представление заданного числа. (На слайде пример перевода).

Задание для самостоятельной работы (все в тетради, один у доски) (Слайд 7)

(Слайд 8)

2СС – 16СС
24 = 16

На какие группы в данном случае будет делиться двоичное число?

Предлагаю вам самостоятельно попробовать перевести число 101110101011112 в 16СС и доработать шпоргалку для работы с 16ричными цифрами. (1 минута сами работают, потом 1 к доске проверять).

Итак, восьмеричная и шестнадцатеричная СС используются для более короткой записи чисел в двоичном коде. Вы могли видеть такие записи при выводе сообщения об ошибке по адресу.

4. Попробуем решить задачи из контрольно – измерительных материалов ЕГЭ по информатике. (Слайд 9)

5. Рефлексия: задания 2 варианта (Слайд 10), взаимопроверка (Слайд 11) (3 ответа – 5, 2 ответа – 4, 1 ответ – 3, нет ответов – неуд).

1 вариант 2 вариант
1. Если осуществлять перевод из 2СС в 32СС, то на какие по длине группы будет делиться двоичное число? 1. Если осуществлять перевод из 2СС в 64СС, то на какие по длине группы будет делиться двоичное число?
2. Некое двоичное число перевели в 16СС, получив 4-х разрядное число. Сколько разрядов было в исходном двоичном числе? 2. Некое двоичное число перевели в 8СС, получив 6-ти разрядное число. Сколько разрядов было в исходном двоичном числе?
3. Почему в компьютере используется двоичная, а не какая-нибудь иная СС? 3. Что физически в компьютере обозначают цифры двоичной СС 1 и 0?

6. Оценки за урок, ДЗ (Слайд 12)

7. Если остается время на уроке, можно порассуждать  на тему: почему 10система счисления принята во всем мире. И какая система скорей всего принята у героев фантастического фильма «Аватар»? (Слайд 13)

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *