Модератор
8946 / 6712 / 921
Регистрация: 14.02.2011
Сообщений: 23,683
|
||||||||||||||||
1 | ||||||||||||||||
Определение знака числа20.03.2014, 19:03. Показов 12863. Ответов 21
Метки нет (Все метки)
тут опять потребовалась функция возвращающая -1 при отрицательном 1 при положительном и 0 при 0 числе
вот изобрел зацените
вот еще
2
|
20.03.2014, 19:03 | |
Ответы с готовыми решениями:
21
Определение целостности числа определение знака на отрезке функции Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака Определение знака зодиака по дате |
0 / 0 / 0
Регистрация: 23.02.2021
Сообщений: 3
|
|
19.11.2023, 07:48 | 21 |
Код с ветвлением безупречен, и вот почему.
Всё выясняется при выполнении кода. Функция sign "ленивая". У меня максимум 2 сравнения, а у Вас всегда 2 сравнения. Вы экономите мг, теряете кг. Но этого мало. Для bool выделяется 1 байт вместо 1 бита, так удобнее, не своё, не жалко. Но 2 байта для "-"? на самом деле 4, для 64 разрядов вообще 8, это слишком, не так ли.
0
|
Вездепух
12759 / 6643 / 1787
Регистрация: 18.10.2014
Сообщений: 16,799
|
|
19.11.2023, 13:55 | 22 |
Это грубейше не верно. Производительность кода зависит от машинной семантики, а не от языковой семантики. В варианте с вычитанием только на уровне языка мерещится два сравнения. А в реальности на большинстве аппаратных платформ любые сравнения одних и тех же операндов - это всегда одно-единственное сравнение, даже если в языковом коде их пятьсот.
Нет, код с ветвлением приемлем на языковом уровне, но только в надежде на то, что на аппаратноммуровне компилятор сумеет его превратить в аналог кода с вычитанием. Совершенно не верно. Опять написана ерунда. Не существует никакого "выделения байтов" и никаких "битов" для локальных переменных. Не имеет никакого значения, какие типы вы использовали. Локальные переменные - это абстракция. В результирующем коде все эти переменные либо исчезнут вообще, либо будут сведены к одному и тому же типу, совпадающего по размеру с регистром процессора.
0
|
19.11.2023, 13:55 | |
19.11.2023, 13:55 | |
Помогаю со студенческими работами здесь
22
Цикл while VS C++. Определение знака зодиака Определить цифры целого числа (тип числа - целое без знака) Проверка знака числа Написать функцию вычисления знака числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |