Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 1.55 KB

Method.md

File metadata and controls

76 lines (58 loc) · 1.55 KB
二进制 十进制
10 2
100 4
1000 8
10000 16
100000 32
二进制 十进制
11 3
110 6
1100 12
11000 24
110000 48

判断偶数奇数 X & 1 = 1//奇数 X & 1 = 0//偶数

不适用第三个数,交换两个数 X = X ^ Y , Y = X ^ Y , X = X ^ Y

运算符&(可以用来获取进位) 15 & 8 = 8 先把15和8转换成二进制 15 = 1111 , 8 = 1000 结果为:1000

运算符^ (‘异或’ 无进位加法) 15 ^ 9 = 7 7 = 111

试炼题(在不使用运算符 + 和 - 计算两个整数a , b之和 )

while(b != 0){
    int temp = a ^ b;
	b = (a & b) << 1;
	a = temp;
}	

试炼题(给定一个整数,判断是否是2的幂次方) 实例1 实例2 实例3 输入:1 输入:16 输入:218 输出:true 输出:true 输出:false 解释:2的0次方 = 1 解释:2的4次方 = 16

return n > 0 && n&(n-1) == 0

8:001000 7:000111 8&7:000000

试炼题(写一个无符号整数,返回这个数二进制中的1的数量) 从1开始移动掩码与目标值进行 & 值不是0就是有1

int result = 0;
int mark = 1;
for(int i = 0;i < 32;i++){
	if((n & mark) != 0){
		result++;
	}
	mark = mark << 1;
}

比如快排,二分,归并等,记住常见排序算法时间复杂度