Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.11.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
Сергей   (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;
Скачать: [xml.tar.bz2];

Наверх





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


15-1369721304
"Добрый Сок"
2013-05-28 10:08
2013.11.10
Перекур.


15-1369324793
Rouse_
2013-05-23 19:59
2013.11.10
Ничего так замиксовали :)


15-1369256090
картман
2013-05-23 00:54
2013.11.10
неправильный вирус


2-1359980332
Александр_2012
2013-02-04 16:18
2013.11.10
как найти и подсветить компоненты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский