Система счисления
Система счисления – это способ представления чисел и соответствующие ему правила действий над числами. Система счисления – это знаковая система, в которой числа записываются по определенным правилам с помощью символов некоторого алфавита, называемых цифрами.
Известно множество способов представления чисел. В любом случае число изображается символом или группой символов (словом) некоторого алфавита. Такие символы называют цифрами.
Сложение двоичных чисел
Сложение в двоичной системе счисления выполняется по тем же правилам, что и в десятичной. Два числа записываются в столбик с выравниванием по разделителю целой и дробной части и при необходимости дополняются справа незначащими нулями. Сложение начинается с крайнего правого разряда. Две единицы младшего разряда объединяются в единицу старшего.
Пример : 1011,12 + 1010,112
Интересна также ситуация, когда складываются больше двух чисел. В этом случае возможен перенос через несколько разрядов.
Пример : 111,12 + 1112 + 101,12
При сложении в разряде единиц (разряд 0) оказывается 4 единицы, которые, объединившись, дают 1002. Поэтому из нулевого разряда в первый разряд переносится 0, а во второй — 1.
Аналогичная ситуация возникает во втором разряде, где с учетом двух перенесенных единиц получается число 5 = 1012. 1 остается во втором разряде, 0 переносится в третий и 1 переносится в четвёртый.
В ы ч и т а н и е
Пример 4. Вычтем единицу из чисел 102, 108 и 1016
Пример 5. Вычтем единицу из чисел 1002, 1008 и 10016.
Пример 6. Вычтем число 59,75 из числа 201,25.
Ответ: 201,2510 — 59,7510 = 141,510 = 10001101,12 = 215,48 = 8D,816.
Проверка. Преобразуем полученные разности к десятичному виду:
10001101,12 = 2 7 + 2 3 + 2 2 + 2 0 + 2 -1 = 141,5;
215,48 = 2 . 8 2 + 1 . 8 1 + 5 . 8 0 + 4 . 8 -1 = 141,5;
8D,816 = 8 . 16 1 + D . 16 0 + 8 . 16 -1 = 141,5.
1.1.2. Двоичная система счисления
Двоичной системой счисления называется позиционная система счисления с основанием 2. Для записи чисел в двоичной системе счисления используются только две цифры: 0 и 1.
На основании формулы (1) для целых двоичных чисел можно записать:
- 100112 = 1 • 2 4 + 0 • 2 3 + 0 • 2 2 + 1 • 2 1 + 1 • 2 0 = 2 4 + 2 1 + 2 0 = 1910.
Такая форма записи «подсказывает» правило перевода натуральных двоичных чисел в десятичную систему счисления: необходимо вычислить сумму степеней двойки, соответствующих единицам в свёрнутой форме записи двоичного числа.
Получим правило перевода целых десятичных чисел в двоичную систему счисления из формулы (1′).
Разделим аn-1 • 2 n-1 + аn-2 • 2 n-2 + … + а0 • 2 0 на 2. Частное будет равно аn-1 • 2 n-2 + … + а1, а остаток будет равен а0.
Полученное частное опять разделим на 2, остаток от деления будет равен а1.
Если продолжить этот процесс деления, то на n-м шаге получим набор цифр:
которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, равное нулю. Исходное число в двоичной системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример 4. Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:
Выписывая остатки от деления в направлении, указанном стрелкой, получим: 1110 = 10112.
Пример 5. Если десятичное число достаточно большое, то более удобен следующий способ записи рассмотренного выше алгоритма:
Непозиционные системы
Как только люди научились считать — возникла потребность записи чисел. В начале все было просто — зарубка или черточка на какой-нибудь поверхности соответствовала одному предмету, например, одному фрукту. Так появилась первая система счисления — единичная.
Единичная система счисления
Число в этой системе счисления представляет собой строку из черточек (палочек), количество которых равно значению данного числа. Таким образом, урожай из 100 фиников будет равен числу, состоящему из 100 черточек.
Но эта система обладает явными неудобствами — чем больше число — тем длиннее строка из палочек. Помимо этого, можно легко ошибиться при записи числа, добавив случайно лишнюю палочку или, наоборот, не дописав.
Для удобства, люди стали группировать палочки по 3, 5, 10 штук. При этом, каждой группе соответствовал определенный знак или предмет. Изначально для подсчета использовались пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.
Древнеегипетская десятичная система
В Древнем Египте использовались специальные символы (цифры) для обозначения чисел 1, 10, 10 2 , 10 3 , 10 4 , 10 5 , 10 6 , 10 7 . Вот некоторые из них:
Почему она называется десятичной? Как писалось выше — люди стали группировать символы. В Египте — выбрали группировку по 10, оставив без изменений цифру “1”. В данном случае, число 10 называется основанием десятичной системы счисления, а каждый символ — представление числа 10 в какой-то степени.
Числа в древнеегипетской системе счисления записывались, как комбинация этих
символов, каждый из которых повторялся не более девяти раз. Итоговое значение равнялось сумме элементов числа. Стоит отметить, что такой способ получения значения свойственен каждой непозиционной системе счисления. Примером может служить число 345:
Вавилонская шестидесятеричная система
В отличии от египетской, в вавилонской системе использовалось всего 2 символа: “прямой” клин — для обозначения единиц и “лежачий” — для десятков. Чтобы определить значение числа необходимо изображение числа разбить на разряды справа налево. Новый разряд начинается с появления прямого клина после лежачего. В качестве примера возьмем число 32:
Число 60 и все его степени так же обозначаются прямым клином, что и “1”. Поэтому вавилонская система счисления получила название шестидесятеричной.
Все числа от 1 до 59 вавилоняне записывали в десятичной непозиционной системе, а большие значения — в позиционной с основанием 60. Число 92:
Запись числа была неоднозначной, поскольку не существовало цифры обозначающей ноль. Представление числа 92 могло обозначать не только 92=60+32, но и, например, 3632=3600+32. Для определения абсолютного значения числа был введен специальный символ для обозначения пропущенного шестидесятеричного разряда, что соответствует появлению цифры 0 в записи десятичного числа:
Теперь число 3632 следует записывать, как:
Шестидесятеричная вавилонская система — первая система счисления, частично основанная на позиционном принципе. Данная система счисления используется и сегодня, например, при определении времени — час состоит из 60 минут, а минута из 60 секунд.
Римская система
Римская система не сильно отличается от египетской. В ней для обозначения чисел 1, 5, 10, 50, 100, 500 и 1000 используются заглавные латинские буквы I, V, X, L, C, D и M соответственно. Число в римской системе счисления — это набор стоящих подряд цифр.
- Значение числа равно сумме значений его цифр. Например, число 32 в римской системе счисления имеет вид XXXII=(X+X+X)+(I+I)=30+2=32
- Если слева от большей цифры стоит меньшая, то значение равно разности между большей и меньшей цифрами. При этом, левая цифра может быть меньше правой максимум на один порядок: так, перед L(50) и С(100) из «младших» может стоять только X(10), перед D(500) и M(1000) — только C(100), перед V(5) — только I(1); число 444 в рассматриваемой системе счисления будет записано в виде CDXLIV = (D-C)+(L-X)+(V-I) = 400+40+4=444.
- Значение равно сумме значений групп и цифр, не подходящих под 1 и 2 пункты.
Введение в двоичную систему счисления
Компьютер использует биты для представления информации. Бит — это самая основная единица хранения в компьютере. Важный компонент компьютеров называется транзистором. Так же, как выключатель света, транзистор либо пропускает, либо предотвращает протекание тока. Итак, у него всего два состояния: включено и выключено.
Каждое число в компьютере — это электрический сигнал. На заре компьютеров электрические сигналы представляли собой состояние «включено» (отрицательный заряд) и состояние «выключено» (положительный заряд). Это образует своего рода бинарный переключатель.
Эти два состояния могут быть представлены одним из двух символов: 1 и 0. Это означает, что основание двоичной системы счисления равно 2. Для представления каждого числа нужны только символы.
Базовые цифры для двоичной системы просты: 0 для представления низкого состояния и 1 для представления высокого состояния.
Вместо того, чтобы представлять числа как отдельные единицы (например, число 10 или 400), мы используем группы единиц и нулей. Например, вот как это выглядит, когда компьютер считает до 10:
Это называется двоичной системой счисления. Каждая двоичная цифра называется битом. Когда дело доходит до размещения значений и цифр в этой системе, мы размещаем значения, соответствующие возрастающей степени 2 слева направо.
Самая правая цифра называется младшим значащим битом (LSB), а крайняя левая цифра — самым старшим битом (MSB).
Вы можете манипулировать битами влево и вправо с помощью побитовых операторов, чтобы эффективно изменять значение числа на уровне машинного кода.
Преобразование между десятичным и двоичным числами
Теперь, когда мы знаем основы двоичной системы, давайте узнаем, как преобразовывать десятичную систему в двоичную. Начнем с преобразования двоичного числа в десятичное.
Мы знаем, что двоичная система имеет разрядные значения степени 2. Эти значения являются весами для цифр (0 или 1) в этих позициях. Вот как это работает:
Умножаем каждую цифру на ее вес (ее позиция умножаем на 2)
Суммируем их все, чтобы получить десятичное число
Итак, возьмем двоичное число 11111010 и переведем его в десятичную систему счисления.
Теперь попробуем наоборот. Как преобразовать десятичное число в двоичное? Один из способов сделать это — повторное деление, что очень удобно.
Итак, возьмем число 19. Начнем с деления его на два и выписки остатка. Когда мы разделим 19 на 2, мы получим 9 с остатком 1.
Затем мы берем 9 и делим его на 2, что дает нам результат 4 с остатком 1. Этот процесс продолжается до тех пор, пока мы не дойдем до нуля. Остатки, которые мы собрали, составляют наше двоичное число!
Многократное деление на 2 и отслеживание остатков — это быстрый способ преобразования десятичной дроби в двоичную!
Десятичная система счисления
Тут все просто. Все мы, в повседневной жизнедеятельности пользуемся десятичной системой счисления — набором цифр от 0 до 9 (всего десять цифр — потому и десятичная), из которых можно составить число любой величины. А так как эта система нам хорошо известна, то и не будем на ней останавливаться.
Давайте посмотрим определение шестнадцатеричной системы счисления, а потом расшифруем его:
Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления по целочисленному основанию 16
Что это значит. Если в десятичной системе для записи любого числа используется десять символов (основание 10) — цифры от нуля до девяти, то в шестнадцатиричной системе используется шестнадцать символов (основание 16) , в качестве которых обычно используются десятичные цифры от нуля до девяти (всего десять) и латинские буквы от A до F (всего шесть — A, B, C, D, E и F).
К примеру, число девять и в десятичной и шестнадцатиричной системах, будет записываться одинаково — 9. А вот число десять (в десятичной — 10), в шестнадцатиричной системе будет выглядеть так — «А».
Шестнадцатиричная система счисления используется потому, что в микроконтроллерах (как и всей компьютерной технике) минимальной единицей памяти является 8-битный байт, значения которого очень удобно записывать именно в шестнадцатиричной системе. Такое использование началось на заре развития компьютерной техники с систем фирмы IBM, где вся документация использовала шестнадцатеричную систему.
Для того, чтобы случайно не спутать числа в десятичной системе с числами в шестандцатиричной, для последней используется определенный синтаксис:
— используется префикс (запись перед числом): «0х» или знак «зеленного» — «$» , или такой знак — «#» , или
— в конце числа ставят букву «h»
К примеру, десятичное число 10 в шестнадцатиричной системе может выглядеть так:
— A
— Ox A
— $ A
— A h
— # A
Встречается и другой синтаксис.
Давайте посмотрим соответствие шестандцатеричных чисел десятичным:
1 – 1
5 – 5
10 – А
200 – С8
Ну а выражение «позиционная система счисления», или «позиционная нумерация», означает, что значение цифры в записи числа зависит от его позиции (единица в самом конце числа — просто единица, а если она вторая справа, то уже — десяток).
13. Как представляются в компьютере вещественные числа?
Система вещественных чисел в математических вычислениях предполагается непрерывной и бесконечной, т.е. не имеющей ограничений на диапазон и точность представления чисел. Однако в компьютерах числа хранятся в регистрах и ячейках памяти с ограниченным количеством разрядов. В следствие этого система вещественных чисел, представимых в машине, является дискретной (прерывной) и конечной.
При написании вещественных чисел в программах вместо привычной запятой принято ставить точку. Для отображения вещественных чисел, которые могут быть как очень маленькими, так и очень большими, используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 в этой форме можно представить так:
1.25 . 10 0 = 0.125 . 10 1 = 0.0125 . 10 2 = .
12.5 . 10 -1 = 125.0 . 10 -2 = 1250.0 . 10 -3 = . .
Любое число N в системе счисления с основанием q можно записать в виде N = M . q p , где M — множитель, содержащий все цифры числа (мантисса), а p — целое число, называемое порядком. Такой способ записи чисел называется представлением числа с плавающей точкой. |
Если «плавающая» точка расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максимального количества значащих цифр числа, то есть максимальная точность представления числа в машине. Из этого следует:
Мантисса должна быть правильной дробью, у которой первая цифра после точки (запятой в обычной записи) отлична от нуля: 0.12 Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. Примеры нормализованного представления: Десятичная система Двоичная система Вещественные числа в компьютерах различных типов записываются по-разному, тем не менее, все компьютеры поддерживают несколько международных стандартных форматов, различающихся по точности, но имеющих одинаковую структуру следующего вида: Здесь порядок n-разрядного нормализованного числа задается в так называемой смещенной форме: если для задания порядка выделено k разрядов, то к истинному значению порядка, представленного в дополнительном коде, прибавляют смещение, равное (2 k-1 — 1). Например, порядок, принимающий значения в диапазоне от —128 до +127, представляется смещенным порядком, значения которого меняются от 0 до 255. Использование смещенной формы позволяет производить операции над порядками, как над беззнаковыми числами, что упрощает операции сравнения, сложения и вычитания порядков, а также упрощает операцию сравнения самих нормализованных чисел. 1) одинарный — 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда). 2) двойной — 64-разрядное нормализованное число со знаком, 11-разрядным смещенным порядком и 53-разрядной мантиссой (старший бит мантиссы не хранится, размер поля, выделенного для хранения мантиссы, составляет 52 разряда). Кодирование текстовой информации. Кодировка ASCII. Основные используемые кодировки кириллицыСоответствие между набором символов и набором числовых значений называется кодировкой символа. При вводе в компьютер текстовой информации происходит ее двоичное кодирование. Код символа хранится в оперативной памяти компьютера. В процессе вывода символа на экран производится обратная операция — декодирование, т. е. преобразование кода символа в его изображение. Присвоенный каждому символу конкретный числовой код фиксируется в кодовых таблицах. Одному и тому же символу в разных кодовых таблицах могут соответствовать разные числовые коды. Необходимые перекодировки текста обычно выполняют специальные программы-конверторы, встроенные в большинство приложений. Как правило, для хранения кода символа используется один байт (восемь битов), поэтому коды символов могут принимать значение от 0 до 255. Такие кодировки называют однобайтными. Они позволяют использовать 256 символов ( N = 2 I = 2 8 = 256 ). Таблица однобайтных кодов символов называется ASCII (American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Первая часть таблицы ASCII-кодов (от 0 до 127) одинакова для всех IBM-PC совместимых компьютеров и содержит:
Вторая часть таблицы (коды от 128 до 255) бывает различной в различных компьютерах. Она содержит коды букв национального алфавита, коды некоторых математических символов, коды символов псевдографики. Для русских букв в настоящее время используется пять различных кодовых таблиц: КОИ-8, СР1251, СР866, Мас, ISO. В последнее время широкое распространение получил новый международный стандарт Unicode. В нем отводится по два байта (16 битов) для кодирования каждого символа, поэтому с его помощью можно закодировать 65536 различных символов ( N = 2 16 = 65536 ). Коды символов могут принимать значение от 0 до 65535. Примеры решения задач Пример. С помощью кодировки Unicode закодирована следующая фраза: Я хочу поступить в университет! Оценить информационный объем этой фразы. Решение. В данной фразе содержится 31 символ (включая пробелы и знак препинания). Поскольку в кодировке Unicode каждому символу отводится 2 байта памяти, для всей фразы понадобится 31 ⋅ 2 = 62 байта или 31 ⋅ 2 ⋅ 8 = 496 битов. detector |