之前就和同学讨论过几道位运算的题目,觉得挺有意思的,就记录一波。
这样坐着敲字总让我想起在出租房里百无聊赖的日子、
题目一:
single number 问题
整型数组中只有一个整数只出现了一次,其他整数都出现了两次,找出出现一次的这个整数,并返回。
异或运算
利用异或运算整型数自身与自身异或为0的特点。
int singleNum(int[] arr){
int res = arr[0];
for(int i=1;i<arr.length;i++){
res=res^arr[i];
}
return res;
}
题目二:一个十进制数的二进制形式中1的个数
与运算
利用与运算0&1=0,不断将一个非零数不断将二进制形式中的1置于0
int get_one_num(in