Двоичные комплексные системы счисления

Экономичность

В цифровой технике система счисления с основанием {\displaystyle b} Двоичные комплексные системы счисления - student2.ru реализуется регистрами, состоящими из наборов триггеров, каждый из которых может принимать {\displaystyle b} Двоичные комплексные системы счисления - student2.ru различных состояний, кодирующих цифры числа. При этом особое значение приобретаетэкономичность системы счисления — возможность представления как можно большего количества чисел с использованием как можно меньшего общего количества знаков.[1] Если количество триггеров равно {\displaystyle r} Двоичные комплексные системы счисления - student2.ru , то общее количество знаков равно {\displaystyle m=r\cdot b} Двоичные комплексные системы счисления - student2.ru , а количество представимых ими чисел соответственно — {\displaystyle b^{r}=b^{\frac {m}{b}}} Двоичные комплексные системы счисления - student2.ru . Как функция от {\displaystyle b} Двоичные комплексные системы счисления - student2.ru , это выражение достигает максимума при {\displaystyle b} Двоичные комплексные системы счисления - student2.ru равном числу e = 2,718281828…[2]. При целых значениях {\displaystyle b} Двоичные комплексные системы счисления - student2.ru максимум достигается для {\displaystyle b=3} Двоичные комплексные системы счисления - student2.ru . Таким образом, наиболее экономичной является троичная система счисления (используемая в троичных ЭВМ), следом за которой идут двоичная система счисления (традиционно используемая в большинстве распространённых ЭВМ) и четверичная система счисления.

Двоичные комплексные системы счисления - student2.ru Экономичность системы счисления — немаловажное обстоятельство с точки зрения её использования в вычислительной машине. Поэтому, хотя применение в вычислительной машине троичной системы вместо двоичной влечёт некоторые конструктивные трудности (при этом нужно пользоваться элементами, каждый из которых может находиться не в двух, а в трёх устойчивых состояниях), эта система уже была использована[3] в некоторых реально существующих вычислительных устройствах.[1] С. В. Фомин Двоичные комплексные системы счисления - student2.ru

Эквивалентное описание экономичности системы счисления можно получить, используя понятие информационной энтропии. При условии равновероятности появления каждой из цифр в записи числа информационная энтропия записи n-разрядного числа в системе счисления с основанием b принимает значение {\displaystyle n{\tfrac {\ln b}{b}}} Двоичные комплексные системы счисления - student2.ru (с точностью до постоянного коэффициента). Поэтому плотность записи (то есть, количество информации на один разряд) чисел в системе счисления с основанием b равна {\displaystyle {\tfrac {\ln b}{b}}} Двоичные комплексные системы счисления - student2.ru , которая также принимает максимальное значение при b = e, а для целых значений b — при b = 3.

Переход к другому основанию[править | править вики-текст]

Перевод в десятичную систему счисления[править | править вики-текст]

Если число в {\displaystyle b} Двоичные комплексные системы счисления - student2.ru -ричной системе счисления равно

{\displaystyle a_{n-1}\;a_{n-2}\ldots \;a_{1}\;a_{0},} Двоичные комплексные системы счисления - student2.ru

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

{\displaystyle \sum _{k=0}^{n-1}a_{k}\cdot b^{k}} Двоичные комплексные системы счисления - student2.ru

или, в более наглядном виде:

{\displaystyle a_{n-1}\cdot b^{n-1}+a_{n-2}\cdot b^{n-2}+\ldots +a_{1}\cdot b^{1}+a_{0}\cdot b^{0},} Двоичные комплексные системы счисления - student2.ru

либо, наконец, в виде схемы Горнера:

{\displaystyle ((\ldots (a_{n-1}\cdot b+a_{n-2})\cdot b+a_{n-3})\ldots )\cdot b+a_{0}.} Двоичные комплексные системы счисления - student2.ru

Например:

1011002 =

= 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 =

= 1 · 32 + 0 · 16 + 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 =

= 32 + 8 + 4 + 0 = 4410

Перевод из десятичной системы счисления[править | править вики-текст]

Целая часть

1. Последовательно делить целую часть десятичного числа на основание, пока десятичное число не станет равно нулю.

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

Дробная часть

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

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

Пример

{\displaystyle 44_{10}} Двоичные комплексные системы счисления - student2.ru переведём в двоичную систему:

44 делим на 2. частное 22, остаток 0

22 делим на 2. частное 11, остаток 0

11 делим на 2. частное 5, остаток 1

5 делим на 2. частное 2, остаток 1

2 делим на 2. частное 1, остаток 0

1 делим на 2. частное 0, остаток 1

Частное равно нулю, деление закончено. Теперь записав все остатки снизу вверх получим число {\displaystyle 101100_{2}} Двоичные комплексные системы счисления - student2.ru

Перевод из двоичной в восьмеричную и шестнадцатеричную системы[править | править вики-текст]

Для этого типа операций существует упрощённый алгоритм.

Для восьмеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (2³=8), в данном случае 3, то есть триад). Преобразуем триады по таблице триад:

000 0 100 4

001 1 101 5

010 2 110 6

011 3 111 7

Для шестнадцатеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (24=16), в данном случае 4, то есть тетрад). Преобразуем тетрады по таблице тетрад:

0000 0 0100 4 1000 8 1100 C

0001 1 0101 5 1001 9 1101 D

0010 2 0110 6 1010 A 1110 E

0011 3 0111 7 1011 B 1111 F

Пример:

преобразуем 1011002

восьмеричная — 101 100 → 548

шестнадцатеричная — 0010 1100 → 2C16

Перевод из восьмеричной и шестнадцатеричной систем в двоичную[править | править вики-текст]

Для этого типа операций существует упрощённый алгоритм-перевёртыш.

Для восьмеричной — преобразуем по таблице в триплеты

0 000 4 100

1 001 5 101

2 010 6 110

3 011 7 111

Для шестнадцатеричной — преобразуем по таблице в квартеты

0 0000 4 0100 8 1000 C 1100

1 0001 5 0101 9 1001 D 1101

2 0010 6 0110 A 1010 E 1110

3 0011 7 0111 B 1011 F 1111

Пример:

преобразуем

548 → 101 100

2C16 → 0010 1100

Перевод из двоичной системы в 8- и 16-ричную[править | править вики-текст]

Перевод дробной части из двоичной системы счисления в системы счисления с основаниями 8 и 16 осуществляется точно также, как и для целых частей числа, за тем лишь исключением, что разбивка на октавы и тетрады идёт вправо от десятичной запятой, недостающие разряды дополняются нулями справа. Например, рассмотренное выше число 1100,0112 будет выглядеть как 14,38 или C,616.

Перевод из произвольной системы счисления в десятичную[править | править вики-текст]

Рассмотрим пример перевода двоичного числа 1100,0112 в десятичное. Целая часть этого числа равна 12 (см. выше), а вот перевод дробной части рассмотрим подробнее:

{\displaystyle 0,011=0\cdot 2^{-1}+1\cdot 2^{-2}+1\cdot 2^{-3}=0+0,25+0,125=0,375.} Двоичные комплексные системы счисления - student2.ru

Итак, число 1100,0112 = 12,37510.

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

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

Перевод из десятичной системы в произвольную[править | править вики-текст]

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

Переводим целую часть по правилам, описанным выше, получаем 10310 = 11001112.

0,625 умножаем на 2. Дробная часть 0,250. Целая часть 1.

0,250 умножаем на 2. Дробная часть 0,500. Целая часть 0.

0,500 умножаем на 2. Дробная часть 0,000. Целая часть 1.

Итак, сверху вниз получаем число 1012. Поэтому 103,62510 = 1100111,1012

Точно также осуществляется перевод в системы счисления с любым основанием.

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

Вариации и обобщения[править | править вики-текст]

Запись рациональных чисел[править | править вики-текст]

Рациональное число {\displaystyle x} Двоичные комплексные системы счисления - student2.ru в {\displaystyle b} Двоичные комплексные системы счисления - student2.ru -ричной системе счисления представляется в виде линейной комбинации (вообще говоря, бесконечной) степеней числа {\displaystyle b} Двоичные комплексные системы счисления - student2.ru :

{\displaystyle x=(a_{n-1}a_{n-2}\ldots a_{1}a_{0},c_{1}c_{2}\ldots )_{b}=\sum _{k=0}^{n-1}a_{k}b^{k}+\sum _{k=1}^{\infty }c_{k}b^{-k}} Двоичные комплексные системы счисления - student2.ru

где {\displaystyle a_{k}} Двоичные комплексные системы счисления - student2.ru — цифры целой части (до разделителя), {\displaystyle c_{k}} Двоичные комплексные системы счисления - student2.ru — цифры дробной части (после разделителя), {\displaystyle n} Двоичные комплексные системы счисления - student2.ru — число разрядов целой части.

Конечной записью в {\displaystyle b} Двоичные комплексные системы счисления - student2.ru -ричной системе счисления обладают только рациональные числа, представимые в виде {\displaystyle {\frac {q}{b^{m}}}} Двоичные комплексные системы счисления - student2.ru , где {\displaystyle m} Двоичные комплексные системы счисления - student2.ru и {\displaystyle q} Двоичные комплексные системы счисления - student2.ru — целые числа:

{\displaystyle {\frac {q}{b^{m}}}=(a_{n-1}a_{n-2}\ldots a_{1}a_{0},c_{1}c_{2}\ldots c_{-m})_{b}=\sum _{k=0}^{n-1}a_{k}b^{k}+\sum _{k=1}^{m}c_{k}b^{-k},} Двоичные комплексные системы счисления - student2.ru

где {\displaystyle (a_{n-1}a_{n-2}\ldots a_{1}a_{0})_{b}} Двоичные комплексные системы счисления - student2.ru и {\displaystyle (c_{1}c_{2}\ldots c_{-m})_{b}} Двоичные комплексные системы счисления - student2.ru представляют {\displaystyle b} Двоичные комплексные системы счисления - student2.ru -ричные записи соответственно частного и остатка от деления {\displaystyle q} Двоичные комплексные системы счисления - student2.ru на {\displaystyle b^{m}} Двоичные комплексные системы счисления - student2.ru .

Рациональные числа, не представимые в виде {\displaystyle {\frac {q}{b^{m}}}} Двоичные комплексные системы счисления - student2.ru , записываются в виде периодических дробей.

Симметричные системы счисления[править | править вики-текст]

Симметричные (уравновешенные, знакоразрядные) системы счисления отличаются тем, что используют цифры не из множества {\displaystyle (0,1,\ldots ,b-1)} Двоичные комплексные системы счисления - student2.ru , а из множества {\displaystyle \left(0-\left({\frac {b-1}{2}}\right),1-\left({\frac {b-1}{2}}\right),\ldots ,(b-1)-\left({\frac {b-1}{2}}\right)\right)} Двоичные комплексные системы счисления - student2.ru . Чтобы цифры были целыми, нужно, чтобы {\displaystyle b} Двоичные комплексные системы счисления - student2.ru было нечётным. В симметричных системах счисления не требуется дополнительных обозначений для знака числа.[4] Кроме того, вычисления в симметричных системах удобны тем, что не требуется особых правил округления — оно сводится к простому отбрасыванию лишних разрядов, что резко уменьшает систематические ошибки вычислений.

Чаще всего используется симметричная троичная система счисления с цифрами {\displaystyle (-1,0,1)} Двоичные комплексные системы счисления - student2.ru . Она применяется в троичной логике и была технически реализована в вычислительной машине «Сетунь».

Отрицательные основания[править | править вики-текст]

Основная статья: Нега-позиционная система счисления

Существуют позиционные системы с отрицательными основаниями, называемые нега-позиционными:

· -2 — нега-двоичная система счисления

· -3 — нега-троичная система счисления

· -10 — нега-десятичная система счисления

Нецелочисленные основания[править | править вики-текст]

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

Примерами таких систем счисления являются:

· при b = ⅓ — система счисления с рациональным дробным основанием, позволяет на троичных реверсивных регистрах сдвига производить операции умножения и деления на целые числа [источник не указан 2463 дня],

· при b = ½ — система счисления с рациональным дробным основанием[источник не указан 2463 дня],

· при b = φ = 1,61… — система счисления Бергмана с иррациональным основанием равным «золотому сечению».[5]

Комплексные основания[править | править вики-текст]

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

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

Примеры

Далее будем записывать позиционную систему счисления в следующем виде {\displaystyle \langle \rho ,A\rangle } Двоичные комплексные системы счисления - student2.ru , где {\displaystyle \rho } Двоичные комплексные системы счисления - student2.ru — основание системы счисления, а A — множество цифр. В частности, множество A может иметь вид:

· {\displaystyle B_{R}=\{0,1,2,\dots ,R-1\},} Двоичные комплексные системы счисления - student2.ru

· {\displaystyle D_{R}=\{-r_{1},-r_{1}+1,\dots ,-1,0,1,\dots ,r_{2}-1,r_{2}\},} Двоичные комплексные системы счисления - student2.ru где {\displaystyle r_{1},r_{2}\geq 0} Двоичные комплексные системы счисления - student2.ru и {\displaystyle R=r_{1}+r_{2}+1} Двоичные комплексные системы счисления - student2.ru . При {\displaystyle r_{1}=0} Двоичные комплексные системы счисления - student2.ru множество {\displaystyle D_{R}} Двоичные комплексные системы счисления - student2.ru превращается в множество {\displaystyle B_{R}} Двоичные комплексные системы счисления - student2.ru .

Примерами систем счисления с комплексными основаниями являются (далее j — мнимая единица):

· {\displaystyle \langle \rho =j{\sqrt {R}},B_{R}\rangle .} Двоичные комплексные системы счисления - student2.ru [7]

· Пример: {\displaystyle \langle \rho =\pm j{\sqrt {2}},\{0,1\}\rangle ;} Двоичные комплексные системы счисления - student2.ru

· {\displaystyle \langle \rho ={\sqrt {2}}e^{\pm j\pi /2},B_{2}\rangle .} Двоичные комплексные системы счисления - student2.ru [6]

· Пример: {\displaystyle \langle \rho =-1\pm j,\{0,1\}\rangle ;} Двоичные комплексные системы счисления - student2.ru

· {\displaystyle \langle \rho =2e^{j\pi /3},\{0,1,e^{2j\pi /3},e^{-2j\pi /3}\}\rangle ;} Двоичные комплексные системы счисления - student2.ru [8]

· {\displaystyle \langle \rho ={\sqrt {R}},B_{R}\rangle ,} Двоичные комплексные системы счисления - student2.ru где {\displaystyle \varphi =\pm \arccos {(-\beta /2{\sqrt {R}})}} Двоичные комплексные системы счисления - student2.ru , {\displaystyle \beta <\min\{R,2{\sqrt {R}}\}} Двоичные комплексные системы счисления - student2.ru — целое положительное число, которое может принимать несколько значений при данном R;[9]

· {\displaystyle \langle \rho =-R,A_{R}^{2}\rangle ,} Двоичные комплексные системы счисления - student2.ru где множество {\displaystyle A_{R}^{2}} Двоичные комплексные системы счисления - student2.ru состоит из комплексных чисел вида {\displaystyle r_{m}=\alpha _{m}^{1}+j\alpha _{m}^{2}} Двоичные комплексные системы счисления - student2.ru , а числа {\displaystyle \alpha _{m}\in B_{R}.} Двоичные комплексные системы счисления - student2.ru Например: {\displaystyle \langle -2,\{0,1,j,1+j\}\rangle ;} Двоичные комплексные системы счисления - student2.ru [8]

· {\displaystyle \langle \rho =\rho _{2}^{},\{0,1\}\rangle ,} Двоичные комплексные системы счисления - student2.ru где {\displaystyle \rho _{2}={\begin{cases}(-2)^{1/2}&{\mbox{if}}\ m\ {\mbox{even}},\\j(-2)^{(m-1)/2m}&{\mbox{if}}\ m\ {\mbox{odd}}.\end{cases}}} Двоичные комплексные системы счисления - student2.ru .[10]

Двоичные комплексные системы счисления

Ниже перечислены основания двоичных позиционных систем счисления и представления чисел 2, −2 и −1 в них:

· {\displaystyle \rho =2} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(10)_{\rho }} Двоичные комплексные системы счисления - student2.ru (система счисления с натуральным основанием);

· {\displaystyle \rho =-2} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(110)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -2=(10)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -1=11_{\rho }} Двоичные комплексные системы счисления - student2.ru (нега-позиционная система счисления);

· {\displaystyle \rho =-\rho _{2}} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(10100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -2=(100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -1=101_{\rho }} Двоичные комплексные системы счисления - student2.ru (система счисления с комплексным основанием);

· {\displaystyle \rho =j{\sqrt {2}}} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(10100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -2=(100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -1=(101)_{\rho }} Двоичные комплексные системы счисления - student2.ru (система счисления с комплексным основанием);

· {\displaystyle \rho =-1+j} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(1100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -2=(11100)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -1=(11101)_{\rho }} Двоичные комплексные системы счисления - student2.ru (система счисления с комплексным основанием);

· {\displaystyle \rho ={\frac {-1+j{\sqrt {2}}}{2}}} Двоичные комплексные системы счисления - student2.ru : {\displaystyle 2=(1010)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -2=(110)_{\rho }} Двоичные комплексные системы счисления - student2.ru , {\displaystyle -1=(111)_{\rho }} Двоичные комплексные системы счисления - student2.ru (система счисления с комплексным основанием).

Непоказательные системы счисления[править | править вики-текст]

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

{\displaystyle {\operatorname {hyper4} (a,b)=\operatorname {hyper} (a,4,b)=a^{(4)}b=a\uparrow \uparrow b= \atop {\ }}\quad {\underbrace {a^{a^{\cdot ^{\cdot ^{a}}}}} \atop {b{\mbox{ times}}}}\quad {=a\to b\to 2 \atop {\ }}} Двоичные комплексные системы счисления - student2.ru

позволяет записывать бо́льшие диапазоны чисел тем же числом знаков.

Число с плавающей запятой

Материал из Википедии — свободной энциклопедии

Число с плавающей запятой (или число с плавающей точкой) — форма представления вещественных (действительных) чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Используемое наиболее часто представление утверждено в стандарте IEEE 754. Реализация математических операций с числами с плавающей запятой в вычислительных системах может быть как аппаратная, так и программная.

«Плавающая запятая» и «плавающая точка»[править | править вики-текст]

Так как в некоторых, преимущественно англоязычных и англофицированных, странах (см. подробный список Decimal separator (англ.)) при записи чисел целая часть отделяется от дробной точкой, то в терминологии этих стран фигурирует название «плавающая точка» (floating point (англ.)). Так как в России целая часть числа от дробной традиционно отделяется запятой, то для обозначения того же понятия исторически используется термин «плавающая запятая», однако в настоящее время в русскоязычной литературе и технической документации можно встретить оба варианта.

Происхождение названия[править | править вики-текст]

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

Преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности. Например, в форме с фиксированной запятой число, занимающее 6 разрядов в целой части и 2 разряда после запятой, может быть представлено в виде 123 456,78. В свою очередь, в формате с плавающей запятой в тех же 8 разрядах можно записать числа 1,2345678; 1 234 567,8; 0,000012345678; 12 345 678 000 000 000 и так далее, но для этого необходимо иметь дополнительное двухразрядное поле для записи показателей степени 10 от 0 до 16, при этом общее число разрядов составит 8+2=10.

Скорость выполнения компьютером операций с числами, представленными в форме с плавающей запятой, измеряется во FLOPS (от англ. floating-point operations per second — «[количество] операций с плавающей запятой в секунду»), и является одной из основных единиц измерения быстродействия вычислительных систем.

Структура числа[править | править вики-текст]

Число с плавающей запятой состоит из следующих частей:

· знак мантиссы (указывает на отрицательность или положительность числа),

· мантисса (выражает значение числа без учёта порядка),

· знак порядка,

· порядок (выражает степень основания числа, на которое умножается мантисса).

Нормальная и нормализованная формы[править | править вики-текст]

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0 1), то есть 0 ⩽ a < 1. Число с плавающей запятой, находящееся не в нормальной форме, теряет точность по сравнению с нормальной формой.[источник не указан 2698 дней]

Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать как 0,000001×102, 0,00001×101, 0,0001×100, 0,001×10−1, 0,01×10−2, и так далее), поэтому распространена (особенно в информатике) также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно), то есть 1 ⩽ a < 10. В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.

Старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен 1 (так называемая неявная единица), поэтому при записи мантиссы числа в ЭВМ старший разряд можно не записывать, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого свойства нет.

Способы записи

При ограниченных возможностях оформления (например, отображение числа на семисегментном индикаторе), а также при необходимости обеспечить быстрый и удобный ввод чисел, вместо записи вида m·be (m — мантисса; b — основание, чаще всего 10; e — экспонента), записывают лишь мантиссу и показатель степени, разделяя их буквой «E» (от англ. exponent). Основание при этом неявно полагают равным 10&. Например, число 1,528535047×10−25 в этом случае записывается как 1.528535047E-25.

Краткий обзор[править | править вики-текст]

Существует несколько способов того, как строки из цифр могут представлять числа:

· Наиболее распространённый путь представления значения числа из строки с цифрами — в виде целого числа — запятая (radix point) по умолчанию находится в конце строки.

· В общем математическом представлении строка из цифр может быть сколь угодно длинной, а положение запятой обозначается путём явной записи символа запятой (или, на Западе, точки) в нужном месте.

· В системах с представлением чисел в формате с фиксированной запятой существует определённое условие относительно положения запятой. Например, в строке из 8 цифр условие может предписывать положение запятой в середине записи (между 4-й и 5-й цифрой). Таким образом, строка «00012345» обозначает число 1,2345 (нули слева всегда можно отбросить).

· В экспоненциальной записи используют стандартный (нормализованный) вид представления чисел. Число считается записанным в стандартном (нормализованном) виде, если оно записано в виде {\displaystyle aq^{n}} Двоичные комплексные системы счисления - student2.ru , где {\displaystyle a} Двоичные комплексные системы счисления - student2.ru , называемое мантиссой, такое, что {\displaystyle 1\leq a<q} Двоичные комплексные системы счисления - student2.ru , {\displaystyle n} Двоичные комплексные системы счисления - student2.ru — целое, называется показатель степени и {\displaystyle q} Двоичные комплексные системы счисления - student2.ru — целое, основание системы счисления (на письме это обычно 10). То есть в мантиссе запятая помещается сразу после первой значащей (не равной нулю) цифры, считая слева направо, а дальнейшая запись даёт информацию о действительном значении числа. Например, период обращения (на орбите) спутника Юпитера Ио, который равен 152 853,5047 с, в стандартном виде можно записать как 1,528535047×105 с. Побочным эффектом ограничения на значения мантиссы является то, что в такой записи невозможно изобразить число 0.

· Запись в форме с плавающей запятой похожа на запись чисел в стандартном виде, но мантисса и экспонента записываются раздельно. Мантисса записывается в нормализованном формате — с фиксированной запятой, подразумеваемой после первой значащей цифры. Возвращаясь к примеру с Ио́, запись в форме с плавающей запятой будет 1528535047 с показателем 5. Это означает, что записанное число в 105 раз больше числа 1,528535047, то есть для получения подразумеваемого числа запятая сдвигается на 5 разрядов вправо. Однако, запись в форме с плавающей запятой используется в основном в электронном представлении чисел, при котором используется основание системы счисления 2, а не 10. Кроме того, в двоичной записи мантисса обычно денормализована, то есть запятая подразумевается до первой цифры, а не после, и целой части вообще не имеется в виду — так появляется возможность и значение 0 сохранить естественным образом. Таким образом, десятичная 9 в двоичном представлении с плавающей запятой будет записана как мантисса +1001000…0 и показатель +0…0100. Отсюда, например, беды с двоичным представлением чисел типа одной десятой (0,1), для которой двоичное представление мантиссы оказывается периодической двоичной дробью — по аналогии с 1/3, которую нельзя конечным количеством цифр записать в десятичной системе счисления.

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

0,12 × 0,12 = 0,0144

в нормальной форме представляется в виде

(1,20·10−1) × (1,20·10−1) = (1,44·10−2).

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

0,120 × 0,120 = 0,014.

Мы потеряли крайний правый разряд числа, так как данный формат не позволяет запятой «плавать» по записи числа.

Наши рекомендации