zoukankan      html  css  js  c++  java
  • Java的运算符号(逻辑与、或、非、移位运算)

     

    1.只可将AND,OR 或NOT 应用于布尔值。与在C 及C++中不同,不可将一个非布尔值当作布尔值在逻辑表达式中使用。
    2.在AND(&&)运算中a()&&b()&&c(),当a为false时,b与c都不再执行,因为整个表达式都是false了,没必要再执行下去,OR(||)也是一样,当有一个为true时就结束。


    1  2  3  4  5  6  7  8  9  10  11  
    public class CalClass {   static Boolean test(int num){    System.out.println(num+">2"+(num>2));    return num>2;   }   public static void main(String[] args){    int i = 1, j =3 , k = 4;    System.out.println(test(i)||test(j)||test(k));    System.out.println("end");   }  }

    3.对于布尔值,按位运算符(如&)具有与逻辑运算符(如&&)相同的效果,只是它们不会中途“短路”。


    移位运算符

    左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补 0)。“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java 也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。
    若对char,byte 或者short 进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会用到。这样可防止我们在一个 int数里移动不切实际的位数。若对一个long 值进行处理,最后得到的结果也是long。此时只会用到右侧的 6个低位,防止移动超过 long 值里现成的位数。但在进行“无符号”右移位时,也可能遇到一个问题。若对 byte 或short 值进行右移位运算,得到的可能不是正确的结果(Java 1.0 和Java 1.1 特别突出)。它们会自动转换成int 类型,并进行右移位。但“零扩展”不会发生。

    http://www.blogjava.net/rosen/archive/2005/08/12/9955.html

    “>> 右移”;“<< 左移”;“>>> 无符号右移”
    例子:

    例子:
    -5>>3=-1
    1111 1111 1111 1111 1111 1111 1111 1011
    1111 1111 1111 1111 1111 1111 1111 1111
    其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。

    -5<<3=-40
    1111 1111 1111 1111 1111 1111 1111 1011
    1111 1111 1111 1111 1111 1111 1101 1000
    其结果与 -5*2*2*2 完全相同。

    -5>>>3=536870911
    1111 1111 1111 1111 1111 1111 1111 1011
    0001 1111 1111 1111 1111 1111 1111 1111

  • 相关阅读:
    linux性能监控 -CPU、Memory、IO、Network等指标的讲解
    Linux中ctrl+z 、ctrl+c、 ctrl+d区别
    linux下程序启动后后台运行实现
    最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决
    【Unity笔记】将角色的碰撞体朝向鼠标点击方向——角色朝向鼠标
    【Unity笔记】碰撞器(Collision)与触发器(Trigger)的区别
    【Unity笔记】鼠标射线由指定层接收
    【Unity笔记】Awake()和Start()的区别
    【Unity笔记】第三人称相机跟随
    【Unity笔记】经典的鼠标点击射线检测碰撞
  • 原文地址:https://www.cnblogs.com/huanjianlin/p/2998056.html
Copyright © 2011-2022 走看看