公司笔试曾经遇到过的面试题

来源:互联网 发布:志鸿优化设计高考英语 编辑:程序博客网 时间:2024/05/14 11:02




将2和8 化成二进制数,进行乘法运算,得出数字的二进制化成十进制为16,

也可以用唯一进行表示,2乘以8 可以理解为2*2^3,就是而要向左移动3位这样的话,就得出如上图的移位的二进制数字,组后将其化成十进制为16

传递变量  寻找中间变量

//通过第三方变量

类似int n=3,m=8;

int temp;

temp=n;

n=m;

m=temp;

//2不用第三方变量

n=n+m; 先求和

m=n-m; 用和减去一个数复制给另一个数   相当于   m=和-当前数=n

n=n-m;  同样道理将刚才的和减去刚刚的另一个数    n=和-当前数=m

11=3+8;

8=11-3;

但是此种算法有弊端//如果n和m的值非常大,容易超出int范围。

 

 

 

技巧式方式

亦或 ^

n=n^m;

m=n^m; //(n^m)^m; 可以简记成为一个数亦或一个数又亦或同一个数等于原数   将其复制给其他的想要复制的变量中。

n=n^m;  //(n^m)^m  上面的变量m得知就是n  所以可以写成(n^m)^n 所以得n=m

0 0
原创粉丝点击