На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> 2 в 95 степени
    Собственно как средствами С или С++ можно решать такие вещи?
    Если можно конкретный пример.
      ExpandedWrap disabled
        double _2_95 = ldexp(1.0,95);


      Добавлено
      Реализация работы с длинными целыми
        Или сделать круто:
        ExpandedWrap disabled
          double k = 2, k << 94;

        :D
          Цитата outsider @
          Или сделать круто:

          если бы еще побитовый сдвиг можно было выполнять с вещественными числами, было бы еще круче :D
            ExpandedWrap disabled
              int x=0x6f000000;
              float r=*((float*)&x);

            В r будет ровно 2^95.
            Сообщение отредактировано: nvm -
              взять u_int128...
              :)
                trainer написал 25.01.2005, 14:37:09:
                Цитата
                ldexp

                А чем хуже pow, если не секрет ;)
                  Цитата мяут @
                  А чем хуже pow, если не секрет

                  А вот чем:
                  Цитата
                  pow does not recognize integral floating-point values greater than 2^64, such as 1.0E100
                  Сообщение отредактировано: vk -
                    Если нужны степени именно 2-х, то прямое конструирование double будет на порядок эффективнее всяких экспонент:
                    ExpandedWrap disabled
                      double power2(int power) // returns 2^power
                      {
                        ASSERT(power>=-1022 && power<=1024);
                        double r;
                        long* p=(long*)&r;
                        p[0]=0;
                        p[1]=(1023L+power)<<20;
                        return r;
                      }
                      Цитата nvm @
                      Если нужны степени именно 2-х, то прямое конструирование double будет на порядок эффективнее всяких экспонент:
                      Что ldexp и делает. Только это стандартная функция в отличие от извращений с машинно-зависимыми представлениями.

                      Цитата мяут @
                      А чем хуже pow, если не секрет
                      ldexp напрямую конструирует двоичное представление числа, в то время как pow вычисляет через степень и логарифм.
                        Выполни при помощи умножения циклом от 2 до 95 и умножай !
                        M
                        Код таких размеров надо складывать в архив и прикреплять к сообщению.
                        Код удален
                        Сообщение отредактировано: trainer -
                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0.0817 ]   [ 15 queries used ]   [ Generated: 18.06.26, 00:48 GMT ]