c/c++ 奇技淫巧(一些c语言的技巧)
1. 变量交换
有时我们需要交换两个变量的值,一般的做法是使用中间变量,但是有一个巧妙的方法可以不使用中间变量交换两个变量的值。
int a = 10, b = 5;
a -= b; // a = 5
b += a; // b = 10
a = b - a; // a = 5
2. 求绝对值
结合位运算,可以使用以下代码快速计算一个数的绝对值:
int abs(int x) {
int y = x >> 31; // 取x的符号位
return (x ^ y) - y; // x与y异或,再减去y就是绝对值
}
3. 取一个数的倒数
除了直接使用1.0/x计算,还可以使用以下代码:
double inv(double x) {
int temp = *(int*)&x;
temp = 0x7FFFFFFF - temp; // 将符号位置0
return *(double*)&temp;
}
以上就是c/c++奇技淫巧的一些示例,希望对大家有所启发。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c/c++ 奇技淫巧(一些c语言的技巧) - Python技术站