经典妙用
秋实_hsg1040175759
C/C的菜鸟但我会一直努力让自己变得更强怀着梦想出发希望结交和我一样怀有梦想的朋友e-mail:hsg1040175759@163.com
展开
-
交换两个数——异或运算
交换两个数,比如a=10,b = 100,交换后a = 100,b = 10,最常见的是加个中间变量来过度,最经典的是异或运算,程序如下:void swap( int &a, int &b){ a = a ^ b; b = a ^ b; a = a ^ b;}以上是C++程序,当然也可以通过指针来做。需要注意的是:即使a,b相等也没关系,但是就是原创 2013-05-04 11:52:56 · 398 阅读 · 0 评论 -
判断两个数哪个大
要求:不用if、?、switch等其他判断语句,找出两个数中间比较大的。方案一:int max = ((a + b) + abs(a - b)) / 2;其中:abs()是取绝对值函数。方案二:int c = a - b;char *maxstr[2]={"a large","b large"};c = ( unsigned(c) >> (sizeof(int原创 2013-05-04 12:24:27 · 329 阅读 · 0 评论 -
统计一个二进制数中1的个数——按位与运算
面试宝典里的题目,也是很多面试经常考的,很多人刚见到这个题目,就不知所措,程序代码如下:#include int main(){ int count = 0; //统计变量 int testNum = 0x77; //测试的数 while (testNum) { count++; testNum = testNum & (testNum - 1);原创 2013-05-04 12:16:44 · 429 阅读 · 0 评论