Инверсия отрицательного значения

DarckSol
Offline
Зарегистрирован: 13.10.2020

Доброго всем времени суток....

Пытаюсь сооброзить, как это провернуть.....

Пример:

Диапазон значений от -255 до 255...

Получая значение -67, мне нужно передать его как 67... 

Как получить положительное значение для работы с ним дальше....

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

самое простое: a = -a ))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

v258 пишет:

самое простое: a = -a ))

Ну, чего так сразу! Дали б человеку "посооброжать", мож родил бы чего ... :-(

MaksVV
Offline
Зарегистрирован: 06.08.2015

если не нужно инвертировать, а только от минуса избавиться, можно взять по модулю   abs(переменная)

SLKH
Offline
Зарегистрирован: 17.08.2015
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

 

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число
https://inf1.info/additionalcode

Разве не это имеется ввиду при ПЕРЕДАЧЕ (представлении и хранении)?

b707
Offline
Зарегистрирован: 26.05.2017

DarckSol пишет:

Получая значение -67, мне нужно передать его как 67...
Как получить положительное значение для работы с ним дальше....

Пытаюсь сооброзить, как это провернуть.....

пипец, куда катимся...

Что завтра спросят, как к одному прибавить один?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

BOOM пишет:

Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

 

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число
https://inf1.info/additionalcode

 

Да, отрицательные числа имеют 1 в старшем разряде, но также они представлены в дополнительном коде.

То есть 00001101 это десятичное 13, а -13 будет 1111 0011   а вовсе не 10001101

10001101 это -115

DarckSol
Offline
Зарегистрирован: 13.10.2020

Спасибо всем! 

Взял самое простое решение: a = -a ;.

Уж извините за глупый вопрос

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

DarckSol пишет:

Уж извините за глупый вопрос

Не перед нами надо извиняца, а перед своей учительницей начальных классов, за то что курил в кустах, вместо математики

DarckSol
Offline
Зарегистрирован: 13.10.2020

Было это лет так 25 назад) Боюсь поздно уже) Но всё равно, спасибо)  за вежливый ответ...

Green
Offline
Зарегистрирован: 01.10.2015

Ну, "об этом думать никому не рано и никогда не поздно!"
Но судя по "Диапазон значений от -255 до 255..." вам нужен abs().

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Green пишет:

Но судя по "Диапазон значений от -255 до 255..." вам нужен abs().

#define abs(x) ((x)>0?(x):-(x))

Так что к тому же и будет приведено ))