些关于逻辑运算符的知识

原创 2015年11月21日 05:13:33


因为在java学习过程中,发现有一部分题不会做,如下


想来很基础的逻辑运算符这部分并没有了解透彻,作一篇日志让知识更巩固一些。


逻辑运算符用于连接布尔型表达式。在Java中不同于数学的逻辑表达 3<X<5 ,java 中应该写成 x>3 & x<5 

  "&" 和"&&" 的区别;

   单个"&",左边无论真假,右边都进行计算。

   双个"&",左边为假,右边不进行计算。

  "|"和"||" 的区别;

   单个"|",左边无论真假,右边都进行计算。

   双个"|",左边为真,右边不进行计算。

    "|"和"&" 做位运算

    二进制进行|位运算,只有0|0时候为0 ,其他为1,比如6|5 先把6和5换成二进制。6的二进制为110,5的二进制为101 那么用位运算0|0得0 只要有1得1,算出为111,111换成十进制为7,所有6|5等于7

    二进制进行&位运算,只有1&1得1,其他得0,同理可得6&5算出二进制得100,100换成十进制为4

     "^"异或运算和"~"反码

   任何相同二进制异或运算都得0,1^1=0,0^0=0,不相同的异或运算都得1,1^0=1,0^1=1。同理6^5的011

那么011的十进制是3。提示一个数异或两次变回本身。比如6^5^5的 110,101,101。先得011,再得110所有又变回原来的数值,此技巧可以用来转换数值,不需要第3个变量即可两个变量值互转。

    反码:二进制进行反码计算时。1变成0,0变成1。举例子~6,6的二进制是110在机器上补足32位在110之前补码0。那么反码为111.....001,此时的反码减去1得111.....111000,那么原反码减去相减的码得到0000....000111此时的十进制为-7那么加上原来减去的1得到-7+1就是~6了。(这个我也不是很懂。大牛们指正下

    "<<"左移">>"右移">>>"无符号右移

    左移:空缺补0,被移除的高位丢弃,空缺位补0,比如32位二进制 0000....00011左移3位变成了0...00011xxx,则xxx补足000即可。规律左移是基数乘以2的移位幂次方,比如3<<2则是3*2*2也就是3乘以2的2次幂。

    右移:最高位是什么就补什么。高位是1补1,是0就补0.,规律左移是基数除以2的移位幂次方,比如3>>1则是3/2也就是3除以2的1次幂。

    无符号右移:无论高位是0还是1都补0

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

逻辑运算符

  • 2014年01月29日 16:57
  • 677B
  • 下载

mongoDB 逻辑运算符

在mongoDB中,逻辑运算也是较为常用的运算,这些逻辑运算通常包含与或非,取反,存在等等。本文描述mongoDB几类常用的逻辑运算符同时给出演示示例,供大家参考。...

matlab 逻辑运算符应用

  • 2017年10月10日 19:19
  • 968B
  • 下载

逻辑运算符

  • 2015年12月06日 21:36
  • 17KB
  • 下载

MATLAB 练习03 关系与逻辑运算符

顺序结构 >> x = 0:pi/2:2*pi x = 0 1.5708 3.1416 4.7124 6.2832 >> X = magic(4); >>...

C语言中的逻辑运算符

  • 2014年12月16日 15:13
  • 115KB
  • 下载

js中逻辑运算符&&||!

js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。 当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规...

java 逻辑运算符的资源

  • 2010年06月18日 15:43
  • 58KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:些关于逻辑运算符的知识
举报原因:
原因补充:

(最多只允许输入30个字)