用C++求绝对值的几种方法
在C++中,求绝对值有几种常用的方法:
- 使用标准库函数
std::abs
,它定义在<cstdlib>
头文件中。
#include <cstdlib>
int main() {
int num = -5;
int absNum = std::abs(num);
std::cout << absNum << std::endl; // 输出5
return 0;
}
- 使用
<cmath>
中的fabs
函数,它可以处理浮点数的绝对值。
#include <cmath>
int main() {
double num = -5.3;
double absNum = std::fabs(num);
std::cout << absNum << std::endl; // 输出5.3
return 0;
}
- 对于整数,可以使用条件运算符或三元运算符来求绝对值。
int main() {
int num = -5;
int absNum = (num < 0) ? -num : num;
std::cout << absNum << std::endl; // 输出5
return 0;
}
- 对于正负数值较少的整数,可以使用位运算来求绝对值。
int main() {
int num = -5;
int absNum = (num ^ (num >> 31)) - (num >> 31);
std::cout << absNum << std::endl; // 输出5
return 0;
}
以上方法可以根据需要选择使用,std::abs
适用于整数和浮点数,std::fabs
仅适用于浮点数,而条件运算符和位运算通常适用于整数。
评论已关闭