数据结构与算法
一、位运算
-
常用计算:
1)num & (1 << i) ==0 用于判断 num二进制的第i位是否为零
2)num & (~num + 1) 可以找出 num二进制最后一位为一的数
-
int 类型数据为32位:分为无符号和有符号:无符号表示范围为 0 ~ 2^31-1; 有符号:表示范围为 -2^31 ~ 2^31-1 即(-2147483648 ~ 2147483647) 或者(10000000000000000000000000000000 ~ 01111111111111111111111111111111)
-
相反数;若num>0或者 num < 0 && num != - 2^31, -num = ~num + 1,若num= - 2^31 或者 num = 0则 -num= ~ num +1 = num;(溢出不计);
打印十进制数的二进制
public static void print(int num) {
for (int i = 31; i >=0 ; i--) {
System.out.print((num & (1 << i)) == 0 ?'0':'1');
}
System.out.println();
}