如何将正数变为负数,负数变为正数?

7

我认为应该有一个函数可以实现这两种操作。

我觉得 fabs 函数可以将负数转换为正数。

但是不确定如何将正数转换为负数?

2个回答

16

num *= -1可以将数字的正负号进行翻转。


1
使用“-”运算符更符合惯用语,可以更好地改变符号。这基本上是一种加法操作,而不是乘法操作。 - David Heffernan

12

我更愿意这样写:

num = -num;

这不需要乘法,只需要改变符号。


你甚至可以使用num=(-1^num)++;避免减法。当然,只限于整数。 - Gabriel
1
优化编译器在这两种情况下都不会使用乘法或赋值:即使您编写 num = -1 * num,现代编译器也会优化掉乘法,并使用 NEG $num 指令来就地取反数。 - Sergey Kalinichenko
改变符号比使用乘法更好,因为乘号实际上会使数字相乘,当然效果会改变符号,但作用于被乘数上。 - Al Pascual

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接