Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/65: Рейтинг темы: голосов - 65, средняя оценка - 4.55
Модератор
Эксперт по электронике
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,683
1

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

20.03.2014, 19:03. Показов 12863. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
тут опять потребовалась функция возвращающая -1 при отрицательном 1 при положительном и 0 при 0 числе
C++
1
2
3
4
5
6
7
8
9
int fnc(int n)
{
 if(n<0)
   return -1;
 if(n>0)
   return 1;
return 0;
 
}
но "это всем известно и никому не интересно"(с) Брыль "Чародеи"

вот изобрел
зацените

C++
1
2
3
4
int fnc(int n)
{
 return 0-(n<0)+(n>0);
}
Добавлено через 3 минуты
вот еще
C++
1
2
3
4
int fnc(int n)
{
 return (n>=0)-(n<=0);
}
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2014, 19:03
Ответы с готовыми решениями:

Определение целостности числа
Люди помогите. Нужно разделить число A на B и определить получается целое число или число с...

определение знака на отрезке функции
kak napisat programmy na c++ dly opredeleniy znaka na otrezke u funkcii

Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака
Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без...

Определение знака зодиака по дате
Помогите пожалуйста сделать листинг программы типа &quot;введите дату\месяц&quot; и выводится определенный...

21
0 / 0 / 0
Регистрация: 23.02.2021
Сообщений: 3
19.11.2023, 07:48 21
Author24 — интернет-сервис помощи студентам
Код с ветвлением безупречен, и вот почему.
Всё выясняется при выполнении кода.
Функция sign "ленивая". У меня максимум 2 сравнения,
а у Вас всегда 2 сравнения. Вы экономите мг, теряете кг.
Но этого мало. Для bool выделяется 1 байт вместо 1 бита,
так удобнее, не своё, не жалко. Но 2 байта для "-"? на самом
деле 4, для 64 разрядов вообще 8, это слишком, не так ли.
0
Вездепух
Эксперт CЭксперт С++
12759 / 6643 / 1787
Регистрация: 18.10.2014
Сообщений: 16,799
19.11.2023, 13:55 22
Цитата Сообщение от AlexanderMal Посмотреть сообщение
Функция sign "ленивая". У меня максимум 2 сравнения,
а у Вас всегда 2 сравнения.
Это грубейше не верно. Производительность кода зависит от машинной семантики, а не от языковой семантики. В варианте с вычитанием только на уровне языка мерещится два сравнения. А в реальности на большинстве аппаратных платформ любые сравнения одних и тех же операндов - это всегда одно-единственное сравнение, даже если в языковом коде их пятьсот.

Цитата Сообщение от AlexanderMal Посмотреть сообщение
Код с ветвлением безупречен, и вот почему.
Нет, код с ветвлением приемлем на языковом уровне, но только в надежде на то, что на аппаратноммуровне компилятор сумеет его превратить в аналог кода с вычитанием.

Цитата Сообщение от AlexanderMal Посмотреть сообщение
Вы экономите мг, теряете кг.
Совершенно не верно.

Цитата Сообщение от AlexanderMal Посмотреть сообщение
Но этого мало. Для bool выделяется 1 байт вместо 1 бита,
так удобнее, не своё, не жалко. Но 2 байта для "-"? на самом
деле 4, для 64 разрядов вообще 8, это слишком, не так ли.
Опять написана ерунда. Не существует никакого "выделения байтов" и никаких "битов" для локальных переменных. Не имеет никакого значения, какие типы вы использовали. Локальные переменные - это абстракция. В результирующем коде все эти переменные либо исчезнут вообще, либо будут сведены к одному и тому же типу, совпадающего по размеру с регистром процессора.
0
19.11.2023, 13:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2023, 13:55
Помогаю со студенческими работами здесь

Цикл while VS C++. Определение знака зодиака
{deleted} Код нужно переписывать в сообщение! Помогите решить проблему. Нужно сделать выполнения...

Определить цифры целого числа (тип числа - целое без знака)
Определить цифры целого числа( тип числа-целое без знака), вычислить сумму полученных цифр....

Проверка знака числа
Есть программа, она считает все делители числа и их сумму, но и считает также отрицательные числа....

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru