- •Представление о системах счисления.
- •Преобразование чисел из одной системы счисления в другую. Правила перевода целых чисел
- •Правила перевода правильных дробей
- •Правило перевода дробных чисел
- •Правила выполнения простейших арифметических действий. Правила сложения
- •Правила вычитания
- •Правила умножения
- •Правила деления
Введение
Позиционные системы счисления — это системы счисления, в которых значение цифры напрямую зависит от её положения в числе. Например, число 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
Чтобы получить время в секундах мы должны посчитать вот по такой формуле:
.
Рассмотрим действия с шестидесятеричной системой на двух небольших задачках:
Пирог нужно печь в духовке 45 минут, сколько это будет в секундах?
Нужно испечь десять пирогов, сколько потребуется времени?
Чтобы производить вычисления в шестидесятеричной системе счисления нужно знать таблицу сложений и умножений шестидесятеричных чисел. Каждая таблица очень большая, она размером 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 результат вычисления многочлена будет всегда получен в той системе счисления, в которой будут представлены цифры и основание и по правилам которой будут выполнены операции.