Java教程

算法基础课123

本文主要是介绍算法基础课123,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法基础课

位运算

1.位运算与进制基础

位运算

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

判断奇偶数

获取二进制位是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,连续和同一个因子做异或运算,最终结果为自己

这篇关于算法基础课123的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!