`
elitesunry
  • 浏览: 37688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA的三个移位运算符

阅读更多

>>(<<):带符号右(左)移,高位补符号位。

>>>(<<<):不带符号右(左)移,高位补零。

<<:左移,末尾补零。

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

分享到:
评论

相关推荐

    Java三种移位运算符原理解析

    Java三种移位运算符原理解析 Java移位运算符是Java编程语言中的一种基本操作符,主要用于对二进制数的移位操作。Java中有三种移位运算符:左移运算符()、带符号右移运算符(&gt;&gt;)和无符号右移运算符(&gt;&gt;&gt;)。下面...

    Java移位运算符1

    本文将深入探讨Java中的三种移位运算符:左移运算符(),右移运算符(&gt;&gt;)以及无符号右移运算符(&gt;&gt;&gt;)。 1. 左移运算符() 左移运算符()将一个数的二进制表示向左移动指定的位数。例如,如果`num`是一个整数,...

    移位运算符

    在Java编程语言中,提供了三种主要的移位运算符:左移运算符(`)、带符号右移运算符(`&gt;&gt;`)以及无符号右移运算符(`&gt;&gt;&gt;`)。这些运算符广泛应用于各种场景,如数据压缩、加密解密算法、图像处理等领域。 #### 左...

    Java运算符+优先级、目数+.pdf

    Java中的移位运算符包括: * 左移位():从左到右的双目运算符,用于将变量左移指定的位数。 * 带符号右移(&gt;&gt;):从左到右的双目运算符,用于将变量右移指定的位数,并保留符号位。 * 无符号右移(&gt;&gt;&gt;):从左到...

    Java运算符优先级

    5. **移位运算符**: - `(左移)、`&gt;&gt;`(右移)、`&gt;&gt;&gt;`(无符号右移)。 - 结合性是从左向右,即先处理左边的操作数。 6. **比较运算符**: - `、`、`&gt;`、`&gt;=`、`instanceof`。 - `instanceof`用于判断一个...

    Java中常见的几种运算符.doc

    这些符号可以分为七类:算术运算符、关系运算符、位运算符、逻辑运算符、移位运算符、三元运算符和赋值运算符。 一、算术运算符 算术运算符是指用于执行算术运算的符号,例如 +、-、*、/、% 等。这些符号可以用来...

    Java移位运算

    ### Java移位运算详解 ...通过以上的介绍,我们可以看到Java中的移位运算符是非常强大的工具,可以帮助我们在处理二进制数据时更加高效。掌握这些运算符的使用方法,能够帮助开发者编写出更加高效、简洁的代码。

    Java中的位运算符、移位运算详细介绍

    接下来是移位运算符,Java提供了三种类型: 1. **算术右移(&gt;&gt;)**:在右移过程中,符号位(最高位)保持不变,左侧丢失的位由符号位填充。例如,-5(11111111 11111111 11111111 11111101)右移一位得到-25...

    【IT十八掌徐培成】Java基础第02天-04.运算符-移位运算-逻辑运算.zip

    Java支持三种类型的移位运算:左移(),右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。左移运算符将二进制数的所有位向左移动指定的位数,空出的位置由0填充。例如,`5 的结果是20,因为5的二进制形式是0101,左移两位后变为...

    java位运算符之左移操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理底层数据和优化代码性能时。左移操作符()是位运算符之一,它在Java中有着特定的应用和理解。本篇文章将深入探讨Java中的左移操作符及其相关知识点。...

    java运算符优先级表

    :**:三目运算符根据第一个表达式的真假决定执行第二个还是第三个表达式,返回执行的结果。 15. **赋值运算=、+=、-=、*=、/=、%=**:赋值运算符用于给变量赋值,复合赋值运算符如+=、-=等会将右侧的值与左侧的变量...

    Java运算符 &#40;优先级、目数&#41; [1].doc

    :`则需要三个操作数。 3. **运算符说明**: - 点`.`运算符常用于访问类的成员,包括属性和方法。 - `+`不仅可以表示加法,还能用于字符串连接。 - `-`除了减法,还可以用于取负。 - 自增`++`和自减`--`有前缀...

    322java中的关系与条件运算符.docx

    例如,在`RelationalDemo`程序中,通过关系运算符可以比较三个整数`i`, `j`, `k`的大小,并输出相应的比较结果。 2. **条件运算符**: - `&&`:逻辑与运算符,如果`op1`和`op2`都是`true`,则返回`true`,并且仅在...

    Java利用移位运算将int型分解成四个byte型的方法

    在这里,我们使用了移位运算符(、&gt;&gt;、&gt;&gt;&gt;)和位运算符(&、|、^)等。 知识点 8:Java 中的数组 在 Java 中,数组是一种数据结构,可以用于存储多个相同数据类型的值。在这里,我们使用了 byte 数组来存储四个 ...

    东软Java笔试题答案.doc

    知识点:位运算符、右移位运算符 9. 编译 Student.java 将会顺利经过编译,并将产生一个 Student.class 的类文件 知识点:Java 编译、类文件、构造函数 10. 能把字符串转换成 float 类型的是 B. float value = ...

    java基础教程java基础教程java基础教程

    此外,Java还提供了三种移位运算符:左移(), 带符号右移(&gt;&gt;), 无符号右移(&gt;&gt;&gt;). 左移将所有位向左移动指定次数,右移则向右移动,带符号右移会根据符号位填充,无符号右移则一律用0填充。 移位运算符的优先级高于...

    CoreJava全套详细笔记资料.pdf

    * 移位运算符包括左移、右移和无符号右移,用于将数字移动到指定的位置。 * 位运算符包括按位与、按位或、按位异或和按位非,用于对数字进行二进制操作。 * 逻辑运算符包括逻辑与、逻辑或和逻辑非,用于对布尔值进行...

    JAVA编程基础111

    此外,还有三种移位运算符:左移()、带符号右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。左移将所有位向左移动,右边用零填充;右移则根据是否带符号决定用零还是符号位填充。 了解了这些基础知识后,我们可以开始构建Java的...

Global site tag (gtag.js) - Google Analytics