算法基础课123

算法基础课

位运算

1.位运算与进制基础

位运算

  • 在处理整型数值时,可以直接对组成整形数值的各个位进行操作。这意味着可以使用屏蔽技术获得整数中的各个位(??)
  • &(与),|(或),^(异或),~(非/取反)
  • >>和<<运算符将二进制位进行右移或者左移操作
  • >>>运算符将用0填充高位;>>运算符用符号位填充高位,没有<<<运算符
  • 对于int型,1<<35与1<<3是相同的,而左边的操作数是long型时需对右侧操作数模64
  • 与:都为1结果为1, 或:有一个为1结果为1, 异或:两者不同时结果为1
a b ~a a&b a|b a^b
1 1 0 1 1 0
0 1 1 0 1 1
0 0 0 0 0 0

判断奇偶数

获取二进制位是1还是0 (两种解决方案)

交换两个整数变量的值

不用判断语句,求整数的绝对值

        异或,可以理解为不进位的加法:1+1=0,0+0=0,1+0=1

        性质

        交换律 可任意交换运算因子的位置,结果不变

        结合律 (即(a^b)^c=a^(b^c))

        对于任意数x都有x^x=0,x^0=x,同自己求异或为0,同0求异或为自己

        自反性 A^B^B=A^0=A,连续和同一个因子做异或运算,最终结果为自己

上一篇:Kettle 数据库密码加密解密


下一篇:123