两个关于a,b的面试题

来源:互联网 发布:js中NaN 编辑:程序博客网 时间:2024/05/16 09:24

题目一:有两个变量a,b,不用if /?:/swithc/或其他的判断语句,找出两个数中比较大。

方案一:

int max=((a+b)+abs(a-b))/2;

方案二:

int c=a-b;char *strs[2]={"a large","b large"};c=unsigned(c)>>(sizeof(int))*8-1;

题目二:如何将a,b的值进行交换,并且不适用任何中间比变量。

方案一:

a=a+b;b=a-b;a=a-b;

方案二:

a=a^b;b=a^b;a=a^b;


0 0