C语言位操作--判断两整数是否异号
判断两整数是否异号:
int x, y; //输入比较的两数 bool f = ((x ^ y) < 0); // 返回真,当且仅当x与y异号
说明:当x、y异号,x与y的最高位分别为0和1,取"^"后为1,结果为负数
不用选择语句得到指定整数的绝对值:
int v; // 需要得到整数v的绝对值 unsigned int r; // r保存结果 int const mask = v >> sizeof(int) * CHAR_BIT - 1; r = (v + mask) ^ mask; 变式: r = (v ^ mask) - mask;
作者:cpoint
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.