Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Алексей Инкин
Зарегистрирован: 19.09.2004 Сообщения: 32 Откуда: Россия, Нижний Новгород
|
Добавлено: Ср Авг 03 2005 16:33 Заголовок сообщения: C++: Округление с избытком |
|
|
Добрый день. Какой самый быстрый способ округления числа в большую сторону до четырёхбайтовой границы? Самое быстрое, что я смог придумать:
Код: |
char diff[] = {0, 3, 2, 1};
n += diff[n % 4];
|
Но, может быть, есть другие способы похитрее? Какая-нибудь специальная машинная команда? Остроумное расширение GCC? _________________ puts("hit");
printf("uck"); |
|
Вернуться к началу |
|
|
Domanser
Зарегистрирован: 03.08.2005 Сообщения: 4 Откуда: Киев
|
Добавлено: Чт Авг 04 2005 14:00 Заголовок сообщения: |
|
|
А как вам это:
n = (n + 3) & ~0x3 |
|
Вернуться к началу |
|
|
Алексей Инкин
Зарегистрирован: 19.09.2004 Сообщения: 32 Откуда: Россия, Нижний Новгород
|
Добавлено: Чт Авг 04 2005 15:18 Заголовок сообщения: |
|
|
Спасибо, хороший способ. 4 команды против моей двадцати одной. (Впрочем, это без оптимизации.) _________________ puts("hit");
printf("uck"); |
|
Вернуться к началу |
|
|
|