singlepost

Округление. asm, если получится, С++ << На главную или назад  

Задание такое: написать функцию округлания хитрой величины в большую сторону без использования библиотечных функций. Получение хитрой величины - дело нехитрое, а вот на округлении я застрял. Появилась мысль написать нужный кусок на ассемблере.

Теперь вопрос: можно ли написать округление в большую сторону средствами С++? Если нет, как пользоваться ассемблерными вставками в С++?

20 ответов в теме “Округление. asm, если получится, С++”

Страницы: [1] 2 »

  1. 1
    Жека Кирпичев ответил:

    А как насчет посмотреть исходники ceil() из math.h?

    http://codesearch.google.com в помощь :)

  2. 2
    Жека Кирпичев ответил:

    Аа, так оно на асме и написано.
    http://www.google.com/codesearch/p?hl=en#crzNwex9NZ0...

  3. 3
    Денис Боенсков ответил:

    y=int(x+0.5) – округление в большую сторону до целого числа

  4. 4
    Жека Кирпичев ответил:

    Нуу, это неинтересно :)

  5. 5
    Андрей Олейников ответил:

    о!) Спасибо большое)

  6. 6
    Денис Боенсков ответил:

    >Нуу, это неинтересно :)
    Краткость – сестра таланта )))

  7. 7
    Павел Потапов ответил:

    > y=int(x+0.5)
    Это стандартное округление, т.е. "2.3 -> 2", а надо "2.3 -> 3".

    Я бы попробовал так:
    if (x > 0)
    {
    y = (int)x;
    if (y < x) // проверяем, что получили число меньшее исходного.
    ++y;
    }
    else
    {
    y = x; // Отбрасываем дробную часть, это как раз будет большее число.
    }

  8. 8
    Жека Кирпичев ответил:

    y = int(x+0.5) – это как раз 2.3 -> 3.

  9. 9
    Денис Боенсков ответил:

    Павел! А как тогда будет округлять y=int(x)???

  10. 10
    Лев Свиридов ответил:

    тогда y = int(x+0.99999)

Страницы: [1] 2 »

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.