Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 4.86
G.a.n.g.s.t.e.r
0 / 0 / 7
Регистрация: 09.01.2011
Сообщений: 94
#1

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

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

КАК ОТРИЦАТЕЛЬНОЕ ЧИСЛО СДЕЛАТЬ ПОЛОЖИТЕЛЬНЫМ
http://www.cyberforum.ru/cpp-builder/thread1681405.html
Желательно показать на примере))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 19:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как отрицательное число сделать положительным (C++ Builder):

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

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

Как сделать что бы при расчёте чисел выводилось целое число
Вообщем есть программа которая считает всё только она выводит решение в виде...

Cчитать строку из ListBox как целое число и как вещественное число
какие команды позволяют считать строку из ListBox как целое число и как...

Как сделать запрос, конкатенирующий число с полем memo? SQL для ADOQuery
Есть таблица TakeOutKind, а в ней поля: Code (длинное целое), TakeOutKind...

14
Sor
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
niceonehere
13 / 13 / 0
Регистрация: 14.04.2012
Сообщений: 150
23.05.2012, 19:27 #3
Цитата Сообщение от Sor Посмотреть сообщение
a=-a;
+1

или умножить на -1 если не ищите лёгких путей
2
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,045
Записей в блоге: 17
23.05.2012, 19:34 #4
А модуль зачем ?
C++
1
2
3
#include <math.h>
abs()
fabs()
1
G.a.n.g.s.t.e.r
0 / 0 / 7
Регистрация: 09.01.2011
Сообщений: 94
23.05.2012, 20:12  [ТС] #5
Цитата Сообщение от niceonehere Посмотреть сообщение
+1

или умножить на -1 если не ищите лёгких путей
спасибо вылетело из головы
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
23.05.2012, 21:15 #6
Еще вариант
C++
1
a=~a+1;
Подходит для любого изменения знака.
0
Aesonet
23 / 23 / 10
Регистрация: 04.04.2012
Сообщений: 119
24.05.2012, 11:20 #7
По моему самое проще.
C++
1
2
#include <math.h>
fabs(a);
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,045
Записей в блоге: 17
24.05.2012, 13:46 #8
По моему самое проще.
Зато не интересно, куда интереснее пофилосовствовать
1
The_Immortal
1560 / 496 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
24.05.2012, 15:41 #9
mimicria,
Цитата Сообщение от mimicria Посмотреть сообщение
C++
1
a=~a+1;
оО а это как понять? Что делает дельта?
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 15:44 #10
Цитата Сообщение от The_Immortal Посмотреть сообщение
оО а это как понять? Что делает дельта?
Инверсия битов.
1
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,045
Записей в блоге: 17
24.05.2012, 15:48 #11
оО а это как понять? Что делает дельта?
Инверсию битов, а еще умно выглядет
1
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 16:44 #12
Цитата Сообщение от Avazart Посмотреть сообщение
Инверсию битов, а еще умно выглядет
Помимо умного вида, это еще и очень полезная конструкция. Например, в некоторых ассемблерах есть операция
Assembler
1
NEG A
, по сути осуществляющая смену знака.
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,045
Записей в блоге: 17
24.05.2012, 20:51 #13
Чесно говоря раньше я почему то считал что достаточно изменить самый старший бит в числе, но выходит это не так.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
24.05.2012, 21:10 #14
Цитата Сообщение от Avazart Посмотреть сообщение
Чесно говоря раньше я почему то считал что достаточно изменить самый старший бит в числе, но выходит это не так.
Старший бит отвечает за знак, а остальные за значение. Битики у -1 выглядят как 0xFFFF, т.е. все установлены в 1.
Соответственно инверсия даёт 0x0000, потом +1 = 1
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,045
Записей в блоге: 17
24.05.2012, 21:14 #15
Чет раньше думал что так и будет 0x1001 (недостатки образования )
0
24.05.2012, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2012, 21:14
Привет! Вот еще темы с решениями:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru