Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.2-3.6.docx
Скачиваний:
3
Добавлен:
16.09.2019
Размер:
47.48 Кб
Скачать

3.2 Системы счисления. Представление чисел в позиционных и непозиционных системах.

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

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

Римская непозиционная система счисления. Самой распространенной из непозиционных систем счисления является римская. В качестве цифр в ней используются: I (1), V (5), X (10), L (50), С (100), D (500), М (1000).

Значение цифры не зависит от ее положения в числе. Например, в числе XXX (30) цифра X встречается трижды и в каждом случае обозначает одну и ту же величину - число 10, три числа по 10 в сумме дают 30.

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

MCMXCVIII = 1000 + (1000 - 100) + (100 -10)+ 5 + 1 + 1 + 1.

Позиционные системы счисления. Первая позиционная система счисления была придумана еще в Древнем Вавилоне, причем вавилонская нумерация была шестидесятеричной, то есть в ней использовалось шестьдесят цифр! Интересно, что до сих пор при измерении времени мы используем основание, равное 60 (в 1 минуте содержится 60 секунд, а в 1 часе - 60 минут).

В XIX веке довольно широкое распространение получила двенадцатеричная система счисления. До сих пор мы часто употребляем дюжину (число 12): в сутках две дюжины часов, круг содержит тридцать дюжин градусов и так далее.

В позиционных системах счисления количественное значение цифры зависит от ее позиции в числе.

Наиболее распространенными в настоящее время позиционными системами счисления являются десятичная, двоичная, восьмеричная и шестнадцатеричная. Каждая позиционная система имеет определенный алфавит цифр и основание.

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

Десятичная система счисления. В общем случае в десятичной системе счисления запись числа А10, которое содержит n целых разрядов числа и m дробных разрядов числа, выглядит так:

A10 = an-1  10n-1 + ... + a0  100 + a-1  10-1 + ... + a-m  10-m

Коэффициенты ai в этой записи являются цифрами десятичного числа, которое в свернутой форме записывается так:

А10 = an-1 an-2 ... a0, a-1 ... a-m.

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

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

Aq = an-1  qn-1 + an-2  qn-2 + ... + a0  q0 + a-1  q-1 + ... + a-m  q-m

Коэффициенты аi в этой записи являются цифрами числа, записанного в q-ичной системе счисления.

Так, в восьмеричной системе основание равно восьми (q = 8). Тогда записанное в свернутой форме восьмеричное число А8 = 673,28 в развернутой форме будет иметь вид:

А8 = 6  82 + 7  81 + 3  80 + 2  8-1.

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

В позиционных системах значение записи целого числа определяется по следующему правилу: пусть a nn-1n-2…a 10 — запись числа A, а i – цифры, тогда

A = a n·pn+a n-1·pn-1 +a n-2·pn-2+...+a 1·p1+ a0·p0        (1),

где p — целое число большее 1, которое называется основанием системы счисления

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

Представление отрицательных и дробных чисел:Во всех позиционных системах для записи отрицательных чисел так же как и в десятичной системе используется знак ‘–‘.  Для отделения целой части числа от дробной используется запятая. Значение записи a nn-1n-2…a 10, a -1 a -2…a m-2 m-1mчисла A определяется по формуле, являющейся обобщением формулы (1):

A = an·pn+a n-1·p n-1+a n-2·p n-2+…+a1·p1+a0·p0+a-1·p-1+a -2·p-2+…+am-2·p–(m–2)+am–1·p–(m–1)+amp–m     (2),

Особым способом выполняется перевод чисел для систем с кратными основаниями.

Пусть p и q – основания двух систем счисления. Будем называть эти системы системами счисления с кратными основаниями, если p = qn или q = pn, где n – натуральное число. Так, например, системы счисления с основаниями 2 и 8 являются системами счисления с кратными основаниями.

Пусть p = qn и требуется перевести число из системы счисления с основанием q в систему счисления с основанием p.  Разобьем целую и дробную части записи числа на группы по n последовательно записанных цифр влево и вправо от запятой. Если количество цифр в записи целой части  числа не кратно n, то надо дописать слева соответствующее количество нулей. Если количество цифр в записи дробной части  числа не кратно n, то нули дописываются справа. Каждая такая группа цифр числа в старой системе счисления будет соответствовать одной цифре числа в новой системе счисления.

3.4Представление чисел в ЭВМ

Чисел с плавающей запятой (float/double/long double в Си). Такое представление числа соответствует нормальной форме записи:¦ (x1p-1 + x2p-2 + ... + xnp-n). Здесь p-n - мантисса, pm - порядок. Пример:133,21 = 102*1.3321, 102- порядок,1.3321- мантисса.

Зн.п 2ln-2 ... 20 Зн.m 2-1 2lm

< Код порядка > < Код мантиссы >

< Длина поля порядка > < Длина поля мантиссы >

Общий вид представления числа с фиксированной точкой: Зн 2-1 ... 2-n Зн 2-1 ... 2-15

< 2 байта, 16 разрядов > Зн 2-1 ... 2-31 < 4 байта, 32 разрядa >

В общем случае фиксированная точка характеризуется значением m (m = соnst). В этом случае для всех чисел, с которыми оперирует машина, положение точки постоянно. Можно увидеть, что при m = 0 все числа, с которыми оперирует машина, меньше 1 и представлены в виде правильных дробей.

Представление целых чисел в беззнаковых целых типах.

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

Представление целых чисел в знаковых целых типах.

Для представления со знаком самый старший (левый) бит отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если отрицательное - 1. Например, в байте можно представить знаковые числа от -128 до 127.

Прямой код числа.

Представление числа в привычной форме "знак"-"величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно. Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда. Но отрицательные целые числа не представляются в ЭВМ с помощью прямого кода, для их представления используется так называемый дополнительный код.

Дополнительный код числа.

Дополнительный код положительного числа равен прямому коду этого числа. Дополнительный код отрицательного числа m равен 2k-|m|, где k - количество разрядов в ячейке. Как уже было сказано, при представлении неотрицательных чисел в беззнаковом формате все разряды ячейки отводятся под само число. Например, запись числа 243=11110011 в одном байте при беззнаковом представлении будет выглядеть следующим образом:

1

1

1

1

0

0

1

1

При представлении целых чисел со знаком старший (левый) разряд отводится под знак числа, и под собственно число остаётся на один разряд меньше. Поэтому, если приведённое выше состояние ячейки рассматривать как запись целого числа со знаком, то для компьютера в этой ячейке записано число -13 (243+13=256=28). Но если это же отрицательное число записать в ячейку из 16-ти разрядов, то содержимое ячейки будет следующим:

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]