Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/335: Рейтинг темы: голосов - 335, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 94
1

Как отрицательное число сделать положительным

23.05.2012, 19:09. Показов 62507. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
КАК ОТРИЦАТЕЛЬНОЕ ЧИСЛО СДЕЛАТЬ ПОЛОЖИТЕЛЬНЫМ
Желательно показать на примере))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2012, 19:09
Ответы с готовыми решениями:

Преобразование данных из строки в отрицательное число
Здравствуйте! Имеется ряд строк типа -498.67469 нужно преобразовать в число для дальнейшей...

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

Массив: найти в каждом столбце последнее отрицательное число
Доброго дня! Кто нибудь может подсказать, как вывести из каждого столбца последнее отрицательное...

Просматривая компоненты файла с конца, заменять каждое отрицательное число на 0, если оно стоит перед положительным числом
Дан файл, компонентами которого являются целые числа. Просматривая компоненты файла с конца,...

14
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
23.05.2012, 19:19 2
C++
1
2
3
4
5
6
int fun(int a)
{
if (a<0) {a=-a;
    }
    return a;
}
1
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 158
23.05.2012, 19:27 3
Цитата Сообщение от Sor Посмотреть сообщение
a=-a;
+1

или умножить на -1 если не ищите лёгких путей
2
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.05.2012, 19:34 4
А модуль зачем ?
C++
1
2
3
#include <math.h>
abs()
fabs()
1
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 94
23.05.2012, 20:12  [ТС] 5
Цитата Сообщение от niceonehere Посмотреть сообщение
+1

или умножить на -1 если не ищите лёгких путей
спасибо вылетело из головы
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
23.05.2012, 21:15 6
Еще вариант
C++
1
a=~a+1;
Подходит для любого изменения знака.
0
24 / 24 / 10
Регистрация: 04.04.2012
Сообщений: 119
24.05.2012, 11:20 7
По моему самое проще.
C++
1
2
#include <math.h>
fabs(a);
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.05.2012, 13:46 8
По моему самое проще.
Зато не интересно, куда интереснее пофилосовствовать
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
24.05.2012, 15:41 9
mimicria,
Цитата Сообщение от mimicria Посмотреть сообщение
C++
1
a=~a+1;
оО а это как понять? Что делает дельта?
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 15:44 10
Цитата Сообщение от The_Immortal Посмотреть сообщение
оО а это как понять? Что делает дельта?
Инверсия битов.
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.05.2012, 15:48 11
оО а это как понять? Что делает дельта?
Инверсию битов, а еще умно выглядет
1
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 16:44 12
Цитата Сообщение от Avazart Посмотреть сообщение
Инверсию битов, а еще умно выглядет
Помимо умного вида, это еще и очень полезная конструкция. Например, в некоторых ассемблерах есть операция
Assembler
1
NEG A
, по сути осуществляющая смену знака.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.05.2012, 20:51 13
Чесно говоря раньше я почему то считал что достаточно изменить самый старший бит в числе, но выходит это не так.
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 21:10 14
Цитата Сообщение от Avazart Посмотреть сообщение
Чесно говоря раньше я почему то считал что достаточно изменить самый старший бит в числе, но выходит это не так.
Старший бит отвечает за знак, а остальные за значение. Битики у -1 выглядят как 0xFFFF, т.е. все установлены в 1.
Соответственно инверсия даёт 0x0000, потом +1 = 1
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.05.2012, 21:14 15
Чет раньше думал что так и будет 0x1001 (недостатки образования )
0
24.05.2012, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2012, 21:14
Помогаю со студенческими работами здесь

Как сделать число положительным через арифметические операции?
Есть отрицательное число, которое получается операцией (a - b) Вопрос: как сделать его...

Как сделать отрицательное число в массиве
Есть array, нужно сделать чтоб в последней виводе в консоле числа дублирование виводились в...

Как из числа в двоичной СС сделать отрицательное число?
Есть число Прямом коде: ПК = 1000 0000 1 Перевожу его в Обратный: ОК = 1111 1111 0 И теперь...

Дано целое число.Если оно является положительным,то прибавить к нему 1;если отрицательное,то вычесть из него 2
Дано целое число.Если оно является положительным,то прибавить к нему 1;если отрицательное,то...


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

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