valker's blog

valker's blog: идеи, размышления, наблюдения

Определение знака числа

2 комментария

В стандартном C/C++ нет функции определения знака числа, наподобие Sign в бейсике. Иногда она бывает нужна. Пользуйтесь в таких случаях такой конструкцией:

int sign = (a > 0) — (a < 0);

Результат:
1 — положительное
0 — нуль
-1 — отрицательное

Автор: Андрей Тарасевич

Written by valker

Апрель 26, 2006 в 12:26 пп

Опубликовано в жизнь

комментария 2

Subscribe to comments with RSS.

  1. согдасен что полезная функция но не особо понял как она работает😦
    Признаюсь си неочень хорошо знаю.

    r00t

    Август 16, 2006 at 1:38 пп

  2. Это не функция, это конструкция. Переменная ‘a’ может быть любого типа, который допускает сравнение со встроенным типом int.
    Работа её основана на том факте, что в C/C++ логический тип может быть конвертирован в целый (и наоборот тоже, но это здесь не используется). Результат вычисления условия в первых скобках — логический тип — конвертируется в 1, если «а» больше нуля и в 0, если «а» меньше или равно нулю. Аналогично, вторая скобка в 1, если «а» меньше нуля и в 0, если «а» больше или равно нуля. В результате вычитания получаем искомый результат.

    valker

    Август 17, 2006 at 5:13 дп


Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: