![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.192.235] |
![]() |
|
![]() |
|
|
Определите диапазон возможных значений переменной (максимальное по модулю значение и минимальное по модулю отличное от 0) при заданных:1)размере поля данных; 2)форме записи
Размер поля данных-20бит А) Форма записи с фиксированной точкой: 10 разрядов для записи дробной части, остальное-для целой. Б) Форма записи с плавающей точкой: 10 разрядов для записи мантиссы, 10 разрядов-для порядка ![]() |
Сообщ.
#2
,
|
|
|
ну флоат 32 разряда... диапазон -3.4 × 1038 до +3.4 × 1038
http://msdn.microsoft.com/ru-ru/library/b1e65aza.aspx тебе надо посчитать диапазон для 20 бит... ну и вложить в этот диапазон свое число... т.е допустим например диапазон будет 20 разрядов ну и помещаешь 0,0000000001 ... 0,0000000020 ну как то так я вижу решение ![]() |
Сообщ.
#3
,
|
|
|
Куда помещать 0,0000000001 ... 0,0000000020? Что то я не могу въехать в ваше объяснение
|
Сообщ.
#4
,
|
|
|
ну в 32 бита типа данных float (у нас не целые числа) помещается диапазон, если откинуть отридцательный диапазон от 0 до 3.4 × 1038
у тебя не 32, а 20 бит.. нужно посчитать диапазон для 20 бит (предлагаю сделать через пропорцию, по другому я не знаю как ![]() ![]() может кто поумнее подтянется, поправит ![]() |
Сообщ.
#5
,
|
|
|
Все просто - главное знать, что при представлении числа - везде используются степени двойки, а в дробной части - x / 2 ^ (количество бит) - мантиссы тоже касается.
Как я понимаю, знак мы не считаем. Тогда для фикс. точки. Минимально представимое 1 / 210 = 0.0009765625 (только дробная часть) Максимально представимое (210 - 1).((210 - 1) / 210) = 1023.9990234375 Для плавающей: Сначала посчитаем порядок: [-1024 ; 1023] То есть мантисса * 5.562 * 10-309 до мантисса * 9.888 * 10307 тогда Минимально представимое: 1 / 210 * 5.562 * 10309 = 5.432 * 10-312 (это кстати денормализованное число) Максимальное: 0.((210 - 1) / 210) * 9.888 * 10307 = 8.98 * 10307 ![]() |
Сообщ.
#6
,
|
|
|
Мяут-Настоящий ну ты маньяк
![]() ![]() а 20 бит кстати где? )))) |
Сообщ.
#7
,
|
|
|
Besha, там все 10 бит.
|
Сообщ.
#8
,
|
|
|
а это?
![]() Цитата DissBoyZ @ Размер поля данных-20бит |
Сообщ.
#9
,
|
|
|
Компоненты (мантисса, дробные части) - по 10 бит - это все что нас интересует.
![]() |