Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
системы счисления.docx
Скачиваний:
9
Добавлен:
24.08.2019
Размер:
79.47 Кб
Скачать

Введение

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

Позиционные системы счисления позволяют легко производить арифметические расчёты.

Представление чисел с помощью арабских цифр — самая распространённая позиционная система счисления, она называется «десятичной системой счисления». Десятичной системой она называется потому, что использует десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Заметьте: максимальная цифра (9) на единичку меньше количества цифр (10).

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

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

Количество цифр используемых в системе счисления называется её «основанием». В десятичной системе основание равно десяти, в двоичной системе — двум, ну а в восьмеричной и шестнадцатеричной — соответственно, восьми и шестнадцати. То есть в р-ичной системе счисления количество цифр равно р и используются цифры от 0 до р-1.

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

Примеры чисел:

  • — число в двоичной системе счисления, ;

  • — число в троичной системе счисления, ;

  • — число в восьмеричной системе счисления, ;

  • — число в десятичной системе счисления, ;

[править] Зависимость плотности записи информации от основания системы счисления

Плотность информации в записи числа зависит от основания системы счисления х и выражается функцией y=(ln(x))/x. Эта функция имеет максимум при x=e=2,718281828….

То есть система счисления с наибольшей плотностью записи имеет нецелочисленное основание.

Из целых чисел ближайшее к числу е — это число 3.

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

Эту задачу решали ещё во времена Непера, в результате для уменьшения таблиц и числа вычислений перешли к таблицам натуральных логарифмов с основанием равным числу Эйлера е=2,718281828… .

[править] Преобразование чисел

Такое представление чисел обозначает вот такое число: , где — цифры, а — основание системы счисления.

Посмотрим чему равны числа из примеров. Используем только что приведённую формулу:

  • ;

  • ;

  • ;

  • .

Мы разобрали, как узнать, чему равно число в любой системе счисления. Но как нам получить это число? Представим что у нас есть некоторое число , и мы хотим получить его представление в системе по основанию . Как нам это сделать?

Мы знаем, что число можно представить в виде , будем из этого исходить. Что будет, если мы поделим это число на . Получим

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

Возьмём для примера полюбившееся нам число и получим представление этого числа в двоичной системе счисления:

  • , остаток ;

  • , остаток ;

  • , остаток ;

  • , остаток ;

  • , остаток .

Что и следовало ожидать, получили: .

Представим число 25 в троичной системе счисления:

  • , остаток ;

  • , остаток ;

  • , остаток .

Получили число: .

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

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

  • , остаток ;

  • , остаток .

Результат: .

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

  • , остаток ;

  • , остаток .

Результат: .

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

Представим это число в виде

.

Посмотрим, что у нас получится при последовательном делении на :

  • делим на , получаем и в остатке;

  • делим ещё раз на , получаем и в остатке;

  • и ещё раз делим на , получаем и в остатке;

  • делим в последний раз на , получаем и в остатке.

[править] Шестидесятеричная система счисления

То, как мы представляем время на часах, это пример шестидесятеричной позиционной системы счисления. В представлении времени используется три позиции: для часов, минут и секунд; так как для каждой позиции приходится использовать 60 цифр, а у нас только десять цифр, то для каждой шестидесятиричной позиции используется две десятичные цифры (00, 01, 02, …, 59), а позиции разделяются двоеточием.

h: m: s

Чтобы получить время в секундах мы должны посчитать вот по такой формуле:

.

Рассмотрим действия с шестидесятеричной системой на двух небольших задачках:

  1. Пирог нужно печь в духовке 45 минут, сколько это будет в секундах?

  2. Нужно испечь десять пирогов, сколько потребуется времени?

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

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

Приступим. Чтобы перевести 45 минут в количество секунд, нужно просто, подставить числа в верхнюю формулу: h равняется нулю, m равняется 45 и s — нулю, получаем

.

Ответ на первый вопрос: пирог нужно печь в духовке 2700 секунд.

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

  • и в остатке, записываем остаток в младший разряд хх: хх:00;

  • и в остатке, записываем остаток в следующий разряд хх:30:00;

  • и в остатке, записываем остаток в старший разряд 07:30:00.

Ответ на второй вопрос: чтобы испечь десять пирогов потребуется 7 часов 30 минут и 0 секунд.

[править] Двоичная система счисления

В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в электронике (кремнии, транзисторах, микросхемах), так как для неё требуется всего два устойчивых состояния (0 и 1).

Двоичная система счисления может быть непозиционной и позиционной системой. В ней используется две цифры: 0 и 1. В железе это может быть реализовано присутствием какого-либо физического явления или его отсутствием. Например: есть электрический заряд или его нет, есть напряжение или нет, есть ток или нет, есть сопротивление или нет, отражает свет или нет, намагничено или ненамагничено, есть дырка или нет и т. п.

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

;

Вы это можете проверить на программе-калькуляторе (gcalctool в gnome, Kcalc в KDE, или калькулятор в Windows). Он умеет производить расчёты в двоичной, восьмеричной и шестнадцатиричной системах счисления. Теперь вы знаете, как он это проделывает. Если вы захотите посвятить свою жизнь программированию, то вам часто придётся работать со степенями двойки. Ниже представлена таблица:

Степень

Значение

0

1

1

2

2

4

3

8

4

16

5

32

6

64

7

128

8

256

9

512

10

1024

11

2048

12

4096

13

8192

14

16384

15

32768

16

65536

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

  • 33 : 2 = 16 остаток 1;

  • 16 : 2 = 8 остаток 0;

  • 8 : 2 = 4 остаток 0;

  • 4 : 2 = 2 остаток 0;

  • 2 : 2 = 1 остаток 0;

  • 1 : 2 = 0 остаток 1;

Получили .

Возьмём число 55. Посмотрим, что получится.

  • 55 : 2 = 27 остаток 1;

  • 27 : 2 = 13 остаток 1;

  • 13 : 2 = 6 остаток 1;

  • 6 : 2 = 3 остаток 0;

  • 3 : 2 = 1 остаток 1;

  • 1 : 2 = 0 остаток 1.

Получили .

Ниже приведены ещё примеры со сложением, вычитанием, умножением и делением.

Сложение:

1001

1010

----

10011

Вычитание:

1110

0101

----

1001

Умножение:

1110

0101

----

1110

0000

1110

0000

-------

1000110

Деление:

1000110|101

101 -----

---- 0001110

111

101

---

101

101

---

00

Программа двоичного представления десятичного числа (Написана на Си)

#include <stdio.h>

#include <conio.h>

void dv(unsigned);

int main(int argc, char **argv)

{

unsigned x;

printf("Vvedite chislo > ");

scanf("%d", &x);

dv(x);

getch();

return 0;

}

void dv(unsigned x)

{

unsigned mask = 1, i;

mask <<= sizeof(unsigned) * 8 - 1;

for(i = 1; i <= sizeof(unsigned) * 8; i++)

{

printf("%c", x & mask ? '1' : '0');

x <<= 1;

if(!(i % 8))

printf(" ");

}

printf("\n");

}

[править] Система счисления с основанием е=2,718281828…

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

[править] Троичная система счисления

Из целочисленных систем счисления обладает наибольшей плотностью записи информации. Первая троичная ЭВМ «Сетунь» была построена в 1958 году Н. П. Брусенцовым в МГУ.

[править] Четверичная система счисления

Обладает такой же плотностью записи, как и двоичная система счисления.

[править] Восьмеричная и шестнадцатеричная системы счислений

Компьютерам очень удобно оперировать двоичными числами, но люди не привыкли работать с большим количеством цифр. Например, чтобы представить в двоичном виде число 1234 потребуется больше 10 двоичных цифр (10011010010). Поэтому были придуманы восьмеричная и шестнадцатеричная системы счислений. Они удобны как и десятичные числа тем, что для представления числа требуется меньшее количество разрядов. А по сравнению с десятичными числами, перевод в двоичное представление очень простой. Это как будто мы двоичное число разбили на группы по три или четыре разряда и каждой двоичной комбинации придумали значок. Вот таблица для восьмеричных цифр:

Двоичная комбинация

Значок

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7

А вот таблица для шестнадцатеричных цифр:

Двоичная комбинация

Значок

0000

0

0001

1

0010

2

0011

3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

1010

A

1011

B

1100

C

1101

D

1110

E

1111

F

Перевод произвести очень просто, посмотрим на примере числа 10011010010.

Разбиваем его на группы по три цифры: 010 011 010 010. И по таблице переводим: .

Чтобы перевести число в шестнадцатеричное представление разбиваем двоичное число на группы по четыре цифры: 0100 1101 0010. И по таблице переводим: . С помощью калькулятора Windows мы можем убедиться, что всё проделано верно.

В программистских кругах шестнадцатеричные числа принято предварять значком 0x (например, 0x4D2), такое написание пошло от языка программирования C, либо значком $ (например, $4D2), такая нотация произошла от языка программирования Pascal. Иногда в литературе используют буквы «h» и «b» для обозначения соответственно шестнадцатеричных и двоичных чисел (например, FFh или 1011b).

[править] Десятичная система счисления

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

http://kuzelenkov.narod.ru/mati/book/informat_prog.html

Представление о системах счисления.

Система счисления(далее СС) - совокупность приемов и правил для записи чисел цифровыми знаками. Наиболее известна десятичная СС, в которой для записи чисел используются цифры 0,1,:,9. Способов записи чисел цифровыми знаками существует бесчисленное множество. Любая предназначенная для практического применения СС должна обеспечивать:

  • возможность представления любого числа в рассматриваемом диапазоне величин;

  • единственность представления (каждой комбинации символов должна соответствовать одна и только одна величина);

  • простоту оперирования числами;

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

, где A(D) - запись числа A в СС D; Di - символ системы, образующие базу.

По этому принципу построены непозиционные СС. В общем же случае системы счисления: A(B)=a1B1+a2B2 +...+anBn. Если положить, что Bi=q*Bi-1, а B1=1, то получим позиционную СС. При q=10 мы имеем дело с привычной нам десятичной СС. На практике также используют другие СС:

q

Название

Цифры

2

двоичная

0,1

3

троичная

0,1,2

8

восьмеричная

0,...,7

16

шестнадцатиричная

0,...,9,A, ...,F

Каждая СС имеет свои правила арифметики (таблица умножения, сложения). Поэтому, производя какие-либо операции над числами, надо помнить о СС, в которой они представлены. Если основание системы q превышает 10, то цифры, начиная с 10, при записи обозначают прописными буквами латинского: A,B,...,Z. При этом цифре 10 соответствуею знак 'A', цифре 11 - знак 'B' и т.д. В таблице ниже приводятся десятичные числа от 0 до 15 и их эквивалент в различных СС:

q=10

q=2

q=16

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

В позиционной СС число можно представить через его цифры с помощью следующего многочлена относительно q: A=a1*q0+a2*q1+...+an*qn (1) Выражение (1) формулирует правило для вычисления числа по его цифрам в q-ичной СС. Для уменьшения количества вычислений пользуются т.н. схемой Горнера. Она получается поочередным выносом q за скобки: A=(...((an*q+an-1)*q+an-2)*q+...)*q+a1 результат вычисления многочлена будет всегда получен в той системе счисления, в которой будут представлены цифры и основание и по правилам которой будут выполнены операции.