|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : €¤à¥© Œ ªá¨¬¥ª® 2:5020/400 16 Jul 2001 12:29:30 To : All Subject : íàéòè áëèæàéøóþ áÎëüøóþ ñòåïåíü äâîéêè ìèíóñ 1 -------------------------------------------------------------------------------- ×èñëî - öåëîå 8 áàéò (Int64) íåîáõ íàéòè áëèæàéøóþ áÎëüøóþ ñòåïåíü äâîéêè ìèíóñ 1, ò.å. äëÿ 4...7 - ýòî 7; äëÿ 32...63 - ýòî 63; Äåëàþ òàê: i := i or (i shr 1); i := i or (i shr 2); i := i or (i shr 4); i := i or (i shr 8); i := i or (i shr 16); i := i or (i shr 32); Âòîðîé âàðèàíò êîðî÷å, íî â 6 ðàç ìåäëåííåå: i := 2 shl Floor(log2(i))-1 // Floor - öåëàÿ ÷àñòü ÷èñëà Åñòü ëè áîëåå îïòèìàëüíûé âàðèàíò? Hè÷åãî â ãîëîâó íå ïðèõîäèò. ------ Àíäðåé Ìàêñèìåíêî -- Îòïðàâëåíî ÷åðåç ñåðâåð Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Âåðíóòüñÿ ê ñïèñêó òåì, ñîðòèðîâàííûõ ïî: âîçðàñòàíèå äàòû óìåíüøåíèå äàòû òåìà àâòîð Àðõèâíîå /ru.algorithms/6488497d58c7.html, îöåíêà èç 5, ãîëîñîâ 10
|