На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Помогите решить задачку
    Определите диапазон возможных значений переменной (максимальное по модулю значение и минимальное по модулю отличное от 0) при заданных:1)размере поля данных; 2)форме записи

    Размер поля данных-20бит

    А) Форма записи с фиксированной точкой: 10 разрядов для записи дробной части, остальное-для целой.

    Б) Форма записи с плавающей точкой: 10 разрядов для записи мантиссы, 10 разрядов-для порядка :)
      ну флоат 32 разряда... диапазон -3.4 × 1038 до +3.4 × 1038
      http://msdn.microsoft.com/ru-ru/library/b1e65aza.aspx

      тебе надо посчитать диапазон для 20 бит... ну и вложить в этот диапазон свое число... т.е допустим например диапазон будет 20 разрядов ну и помещаешь 0,0000000001 ... 0,0000000020

      ну как то так я вижу решение :scratch:
        Куда помещать 0,0000000001 ... 0,0000000020? Что то я не могу въехать в ваше объяснение
          ну в 32 бита типа данных float (у нас не целые числа) помещается диапазон, если откинуть отридцательный диапазон от 0 до 3.4 × 1038
          у тебя не 32, а 20 бит.. нужно посчитать диапазон для 20 бит (предлагаю сделать через пропорцию, по другому я не знаю как :D ) ну и смотри какие числа помещаются в этот диапазон :)

          может кто поумнее подтянется, поправит :scratch:
          Сообщение отредактировано: Besha -
            Все просто - главное знать, что при представлении числа - везде используются степени двойки, а в дробной части - 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

            :crazy:
              Мяут-Настоящий ну ты маньяк :D :crazy:

              а 20 бит кстати где? ))))
                Besha, там все 10 бит.
                  а это? :)
                  Цитата DissBoyZ @
                  Размер поля данных-20бит
                    Компоненты (мантисса, дробные части) - по 10 бит - это все что нас интересует. ;)
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0248 ]   [ 14 queries used ]   [ Generated: 19.05.24, 16:30 GMT ]