2 в 95 степени
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.140] |
|
|
2 в 95 степени
|
Сообщ.
#1
,
|
|
|
|
Собственно как средствами С или С++ можно решать такие вещи?
Если можно конкретный пример. |
|
Сообщ.
#2
,
|
|
|
|
|
Сообщ.
#3
,
|
|
|
|
Или сделать круто:
![]() ![]() double k = 2, k << 94; |
|
Сообщ.
#4
,
|
|
|
|
Цитата outsider @ Или сделать круто: если бы еще побитовый сдвиг можно было выполнять с вещественными числами, было бы еще круче |
|
Сообщ.
#5
,
|
|
|
|
![]() ![]() int x=0x6f000000; float r=*((float*)&x); В r будет ровно 2^95. |
|
Сообщ.
#6
,
|
|
|
|
взять u_int128...
|
|
Сообщ.
#7
,
|
|
|
|
trainer написал 25.01.2005, 14:37:09:
Цитата ldexp А чем хуже pow, если не секрет |
|
Сообщ.
#8
,
|
|
|
|
Цитата мяут @ А чем хуже pow, если не секрет А вот чем: Цитата pow does not recognize integral floating-point values greater than 2^64, such as 1.0E100 |
|
Сообщ.
#9
,
|
|
|
|
Если нужны степени именно 2-х, то прямое конструирование double будет на порядок эффективнее всяких экспонент:
![]() ![]() 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; } |
|
Сообщ.
#10
,
|
|
|
|
Цитата nvm @ Что ldexp и делает. Только это стандартная функция в отличие от извращений с машинно-зависимыми представлениями.Если нужны степени именно 2-х, то прямое конструирование double будет на порядок эффективнее всяких экспонент: Цитата мяут @ ldexp напрямую конструирует двоичное представление числа, в то время как pow вычисляет через степень и логарифм. А чем хуже pow, если не секрет |
|
Сообщ.
#11
,
|
|
|
|
Выполни при помощи умножения циклом от 2 до 95 и умножай !
M Код таких размеров надо складывать в архив и прикреплять к сообщению. Код удален |