Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.11.10;
Скачать: CL | DM;

Вниз

Нормализованое число   Найти похожие ветки 

 
Сергей   (2013-05-28 05:11) [0]

Здравствуйте мастера! Объясните пожалуйста, как можно представить число в нормализованном виде? 0,11000101... Как можно записать прямой, обратный и дополнительный код данного числа?


 
Ega23 ©   (2013-05-28 07:39) [1]


> число в нормализованном виде

Стесняюсь спросить: а нормализованный вид - это как?


 
boriskb ©   (2013-05-28 07:47) [2]


> Стесняюсь спросить: а нормализованный вид - это как?

Это не у него надо спрашивать, а у его преподователя.


 
Алканавт расправил плечи   (2013-05-28 07:54) [3]

Нормализованный вид — представление числа в форме с плавающей запятой в виде 0.1xxxxxxx * 2^n. То бишь в данном примере число и так в нормализованном виде. Хотя совершенно неочевидно, что оно таки с плавающей запятой.


 
Inovet ©   (2013-05-28 07:59) [4]

> [3] Алканавт расправил плечи   (28.05.13 07:54)
> с плавающей запятой

Тогда как ответить на вторую часть вопроса?


 
Алканавт расправил плечи   (2013-05-28 08:02) [5]

На вторую часть вопроса ответить невозвожно, не зная разрядностей мантиссы и показателя степени. Точнее, не удастся сформировать дополнительный код. А обратный — тупо заменить первый ноль на единицу.


 
Алканавт расправил плечи   (2013-05-28 08:07) [6]

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


 
Dimka Maslov ©   (2013-05-28 08:17) [7]

Насколько я помню, нормализованный вид - это когда целая часть мантиссы записывается одной цифрой, отличной от нуля. Следовательно для числа 0,11000101...нормализованным будет 1.1100101E-1


 
Inovet ©   (2013-05-28 08:18) [8]

Также не упомянута система счисления.


 
Алканавт расправил плечи   (2013-05-28 08:22) [9]

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) находится на полуинтервале [0; 1) (). Число с плавающей запятой, находящееся не в нормальной форме, теряет точность по сравнению с нормальной формой.[источник не указан 1435 дней] Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001·100, 0,001·10−1, 0,01·10−2, 0,1·10−3), поэтому распространена (особенно в информатике) также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно) (). В такой форме любое число (кроме 0) записывается единственным образом. Недостаток заключается в том, что в таком виде невозможно представить 0, поэтому представление чисел в информатике предусматривает специальный признак (бит) для числа 0.
Так как старший разряд (целая часть числа) мантиссы двоичного числа (кроме 0) в нормализованном виде равен «1», то при записи мантиссы числа в эвм старший разряд можно не записывать, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого свойства нет.


 
Павиа   (2013-05-28 08:56) [10]


> Стесняюсь спросить: а нормализованный вид - это как?

А это по Кнуту. Том 2.


> В. Нормализованные вычисления. Число с плавающей точкой
> (е, f) является
> нормализованным, либо если наиболее значимая цифра в представлении
> f отлична от нуля, так что
> 1/b<=Abs(f) < 1,
>
> либо если f = 0, а е принимает наименьшее возможное
> значение. Чтобы установить, какое из двух нормализованных
> чисел с плавающей точкой имеет большую величину, достаточно
> сравнить их порядки; только если порядки равны, нужно анализировать
> и дробные части.
> Большинство ныне применяемых стандартных подпрограмм работает
> почти исключительно с нормализованными числами: предполагается,
>  что входные значения для подпрограмм нормализованы, а результаты
> всегда нормализуются. ...


А вообще есть формат IEEE 754 который также определяет нормализованный вид числа


> 2.1.38 normal number: For a particular format, a finite
> non-zero floating-point number with magnitude
> greater than or equal to a minimum b emin value, where b
> is the radix. Normal numbers can use the full
> precision available in a format. In this standard, zero
> is neither normal nor subnormal.


 
Jeer ©   (2013-05-28 10:34) [11]

Есть нормальная форма, есть нормализованная и есть уточнение нормализованной. :)


 
icWasya ©   (2013-05-28 16:10) [12]

А вот насчёт дополнительного кода для чисел с плавающей запятой...
По стандарту IEEE 754 - не прижилось. Арифметика для целых чисел использует формат записи отрицательных чисел в дополнительном коде, поскольку позволяет упростить вычислитель, например для сложения беззнаковых и знаковых положительных и отрицательных чисел используются одни и те же алгоритмы/микросхемы, в которых не нужно заранее анализировать знаки операндов.
Для чисел с плавающей запятой уже используются более сложные алгоритмы, до собственно, например сложения, нужно привести операнды к одному и тому же порядку, на фоне которого лишняя проверка знакового разряда занимает малую часть вычислителя. А после сложения нужно опять нормализовывать результат, и тут уже представление в дополнительном коде не несёт никакой выгоды.
Поэтому для чисел с плавающей запятой, как правило, используется представление в прямом коде с выделеленным знаковым разрядом.


 
брат Птибурдукова   (2013-05-28 18:03) [13]


> представление в дополнительном коде не несёт никакой выгоды
в дополнительном или обратном коде алгоритм сложения положительного с положительным и положительного с отрицательным — один. При прямом коде придётся отдельно реализовывать сложение и вычитание. Как-то так.



Страницы: 1 вся ветка

Текущий архив: 2013.11.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
6-1269941070
Ivan Petrov
2010-03-30 13:24
2013.11.10
Получить письмо с rambler


15-1366604147
Sergey Masloff
2013-04-22 08:15
2013.11.10
куда пойти учиться


2-1360416527
Cyber Icarus
2013-02-09 17:28
2013.11.10
Как получить все значения энума в строкой массив


15-1369703482
Сергей
2013-05-28 05:11
2013.11.10
Нормализованое число


6-1270034814
jetbird
2010-03-31 15:26
2013.11.10
Кодировка вложений