0xd34df00d 19.03.2013 13:19 Azoth_primary

Наткнулся в продакшен-коде на подсчет количества цифр в числе через принтф. Уж и не думал, что увижу такое.

1. 4da 19.03.2013 13:21 BitlBee

нормик, на дельфях так и пишут.

2. magog 19.03.2013 13:26 Azoth

а какой вариант решения ты считаешь наиболее приемлемым?

3. 4damagog /2 19.03.2013 13:27 BitlBee

взять целую часть от десятичного логарифма числа же!

4. magog4da /3 19.03.2013 13:27 Azoth

чем этот метод полущ вычисления длинны строки?

5. 4damagog /4 19.03.2013 13:28 BitlBee

тем, что не нужно конвертить число в строку.

6. magog4da /5 19.03.2013 13:28 Azoth

тоесть высчитывание логарифма — это более быстрая операция?

7. 0xd34df00d4da /3 19.03.2013 13:28 Azoth_primary

Шаришь.

8. 0xd34df00dmagog /6 19.03.2013 13:28 Azoth_primary

Конечно.

9. 4damagog /6 19.03.2013 13:28 BitlBee

да.

10. magog4da /9 19.03.2013 13:29 Azoth

хм. Не знал это.

11. 0xd34df00dmagog /2 19.03.2013 13:29 Azoth_primary

Еще можно десятично делить на 10, пока не получится число меньше 10.
N месяцев назад был аналогичный тред, и там были пруфы, что из этих двух методов быстрее // не помню, чо.

12. magog0xd34df00d /11 19.03.2013 13:30 Azoth

чем циклическое деление на 10 отличается от логарифма?

13. 4da0xd34df00d /11 19.03.2013 13:30 BitlBee

в x86 есть инструкция fyl2x, которая вычисляет Y * log2 X

14. 0xd34df00dmagog /12 19.03.2013 13:32 Azoth_primary

Э, я даже не знаю, как ответить на этот вопрос.

15. 0xd34df00d4da /13 19.03.2013 13:32 Azoth_primary

Возможно, вы имели ввиду: x87

16. 4da0xd34df00d /15 19.03.2013 13:33 BitlBee

прости, забыл, что у тебя 386sx

17. 0xd34df00d4da /16 19.03.2013 13:33 Azoth_primary

Пасяб, не забывай больше ))

18. 4damagog /12 19.03.2013 13:35 BitlBee

тем, что в отличие от блока idiv инструкций, которые будут выполняться в цикле, это отдельная инструкция CPU, соотве-но CPU лучше сможет ее запайплайнить вместе с другими инструкциями в потоке исполнения.

19. mva 19.03.2013 14:30 N900

ШТО? Это как нужно было упороться (алсо, как это конкретно выглядит? :) или NDA)?

20. 0xd34df00dmva /19 19.03.2013 14:32 Azoth_primary

Не совсем NDA, но все равно не стоит.

21. Myp 19.03.2013 15:11 Azoth

В общем случае вполне себе способ.

Do you really want to delete ?