Java私塾跟我学系列――JAVA篇 第二章 基础语法

 

六(2)

7. 移位运算                                                                              

Java编程语言提供了两种右移位运算符和一种左移运算符,右移一位( >> )相对于除以2:左移( <<)相对于乘以2

1运算符>>进行算术或符号右移位。移位的结果是第一个操作数被2的幂来除,而指数的值是由第二个数给出的。例如:

128 >> 1 得到 128/21 = 64

256 >> 4 得到 256/24 = 16

-256 >> 4 得到 -256/24 = -16

2逻辑或非符号右移位运算符>>>主要作用于位图,而不是一个值的算术意义;它总是将零置于符号位上。例如:

1010 ... >> 2 得到 111010 ...

1010 ... >>> 2 得到 001010 ...

在移位的过程中, >>运算符使符号位被拷贝。

3运算符<<执行一个左移位。移位的结果是:第一个操作数乘以2的幂,指数的值是由第二个数给出的。例如:

      128 << 1 得到 128*21 = 256

16 << 2 得到 16*22 =64

4负数等于正数取反加一。

示例:

 

 

注意

1) 移位运算符将它们右侧的操作数模32简化为int类型左侧操作数64简化为long类型右侧操作数。因而任何int x, x >>> 32都会导致不变的x而不是你可能预计的零。

2)值得称赞的重要一点是: >>>运算符仅被允许用在整数类型并且仅对intlong值有效。如果用在shortbyte值上则在应用>>>之前该值将通过带符号的向上类型转换被升级为一个int。有鉴于此,无符号移位通常已成为符号移位。

8用加号(+)进行串链接                                                               

运算符 +  能够进行String对象的链接并生成一个新的String

        String salutation = "Dr. ";

        String name = "Jack " + "Arthur";

        String title = salutation + name;

      最后一行的结果是:

        Dr. Jack Arthur

如果+运算符中有一个自变量为String对象,则其它自变量将被转换成String。所有对象都可被自动转换成String,尽管这样做的结果可能是意义含糊的。不是字符串的对象是通过使用toString() 成员方法而转换成串的等价物的。

 

9.三目运算 ?                                                               

三目运算符?:表达的是:判断问号前面的条件表达式是否为真,如果为真,返回冒号前面的值,否则返回冒号后面的值。

例如:

public class Test {

    public static void main(String[] args) {

       int i = (5>3) ? 6 : 7;

       System.out.println("the i="+i);

    }

}

运行结果为:the i=6

       其实三目运算符的基本功能相当于if-else(马上就要学到了),使用三目运算符是因为它的表达比相同功能的if-else更简洁。上面的例子改成用if-else表达如下:

public class Test {

    public static void main(String[] args) {

       int i = 0;

       if (5 > 3) {

           i = 6;

       else {

           i = 7;

       }

       System.out.println("the i=" + i);

    }

}

运行结果为:the i=6

Java私塾跟我学系列——JAVA  网址:http://www.javass.cn  电话:010-68434236

 

你可能感兴趣的:(java,职场,语法,休闲)