`

java位移运算符详解

阅读更多
在面试或者平时看源码或者其他的什么的时候经常看到<< >> 这种运算,虽然大学学过什么位移但是你懂得,网上看了很多人的讲解,最后汇总下:
比如num是40 (10进制) 对应的二进制为: 101000 = 2的5次方x1+2的4次方x0+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0 (二进制转换为十进制方法原始方法)

<< 左移一位(左移一位是相对于二进制来说的,如果是十进制数转为二进制后左一位后在转为十进制数)

过后对应的二进制:1010000 = 2的6次方x1+2的5次方x4+2的4次方x1+2的3次方x0+2的2次方x0+2的1次方x0+2的0次方x0

= (2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0)x2=40x2

同样,如果左移两位就是2的平方,3位2的3次方···,这样推算结果就是左移几位就是原来的十进制数乘以2的多少次方,比如40左移3位

结果就是40x2的3次方 = 320

右移就是除以2,哈哈,自己推算啦。这样有助于记忆。

1 << 5  二进制表示就是100000,十进制就是2的五次方32
1 << 4  二进制表示就是10000,十进制就是2的四次方16

希望能帮到你

本文章有一大部分引用别人的,在此表示感谢@MyEclipseJAVA2EE博主。
分享到:
评论

相关推荐

    Java移位运算符详解实例(小结)

    Java移位运算符详解实例 Java移位运算符是Java语言中的一种基本运算符,用于对二进制数进行位移操作。移位运算符主要包括左移位运算符()、右移位运算符(&gt;&gt;&gt;)和带符号的右移位运算符(&gt;&gt;)。这些运算符可以单独...

    Java运算符优先级别.doc

    5. **位移运算符** `, `&gt;&gt;`, `&gt;&gt;&gt;`:从左到右结合。 - **左移** `将二进制数的各位向左移动。 - **右移** `&gt;&gt;`:将二进制数的各位向右移动。 - **无符号右移** `&gt;&gt;&gt;`:与右移类似,但高位补0。 6. **比较运算符*...

    Java程序设计基础:运算符与表达式.pptx

    #### 四、具体运算符详解 - **算术运算符**: - `+`:加法运算。 - `-`:减法运算。 - `*`:乘法运算。 - `/`:除法运算。 - `%`:取模运算,返回除法的余数。 - **自增自减运算符**: - `++`:自增运算符,...

    最新最全2012年Java面试宝典

    最有效率的方法是使用位移运算符`,即`2 ,相当于2乘以2的3次方,结果是16。 **1.9 设计一个一百亿的计算器** 对于处理非常大的数字,可以使用`BigInteger`类,它是Java提供的一个用来处理大整数的类。 **1.10 ...

    JAVA位运算.pdf

    ### JAVA位运算详解 在Java编程中,位运算是一门精细的艺术,涉及到对整数类型的二进制位进行直接操作。这些操作不仅能够优化代码执行效率,还常用于实现特定的算法需求。本文将深入探讨Java中的位运算,包括位...

    java面试题大全好多经典的试题

    位移运算符示例:2 的结果是什么?** `2 表示将2的二进制表示左移3位,即0010变为100000,因此结果为32。 **15. String类有length()方法吗?** 是的,`String`类确实有`length()`方法,用于返回字符串的长度。 ...

    JAVA开发基于Misty1算法的加密软件(JAVA)的实现(源代码+论文).zip

    在Java中,可以使用位移运算符`&gt;&gt;&gt;`和`来实现行移位,使用异或操作符`^`来实现列混淆。 5. **轮密钥加** 轮密钥加是将密钥与当前轮的中间结果进行异或,增加算法的不可预测性。在Java中,这可以通过简单的异或操作...

    java考试重点(1001093449).pdf

    - **位移运算符**: - `&gt;&gt;` 和 `&gt;&gt;&gt;`: 分别代表算术右移和逻辑右移。 #### 四、总结 本篇文章通过对给定文件标题、描述、标签以及部分内容的分析,深入探讨了Java考试中涉及的重要知识点。从Java开发工具、语言...

    Java语言的26个细.doc

    在Java中,位移运算符(`和 `&gt;&gt;`)用于将二进制位向左或向右移动指定的位置。然而,Java对位移运算进行了一项优化处理,特别是当移位的数量超过32位时。根据Java规范,对于`int`类型,如果位移量超过32位,实际上...

    Java编程基础语法

    ### Java编程基础语法详解 #### 一、Java语言概述与特点 Java作为一种广泛使用的编程语言,其设计初衷是为了实现“一次编写,到处运行”的理念。Java语言由语法规则和类库两大部分组成,其中语法规则是编程的基础...

    Java笔试题(完整最新版)

    - **知识点概述**:可以使用位移运算符`来快速计算2乘以8,即`2 。 #### 六、static方法内部调用非static方法的可能性 - **知识点概述**:从静态(`static`)方法内部无法直接调用非静态方法。非静态方法依赖于...

    java面试题-含答案.pdf

    - 用最有效率的方法计算 `2 * 8` 可以直接写 `2 ,这是利用位移运算符进行快速乘法。 以上是对 Java 面试题中涉及的基础知识的详细解释,涵盖了面向对象、数据类型、操作符、内存管理和控制流等多个方面。理解并...

    Java最新面试宝典

    ### Java最新面试宝典知识点详解 ...- 使用位移运算符 `是计算 2 的倍数的一种非常高效的方法。 ```java int result = 2 ; // 结果为 4 ``` - 位移运算比乘法运算更快,特别是在处理大整数时效率更高。

    Java面试宝典2010版

    8. **效率计算2乘以8**:最有效率的方法是使用位移运算符:`2 ,这相当于2乘以2的3次方,即8。 9. **设计大整数计算器**:设计一个能处理大整数的计算器,可以使用BigInteger类,它能处理超过int和long范围的大整数...

    java ssh面试宝典

    计算`2*8`的最有效率方式可能是使用位移运算符:`2 ,这相当于将二进制数左移三位,达到乘以8的效果。 **9. 设计一个百亿级计算器** 设计百亿级计算器涉及到大数运算,可以使用Java的`BigInteger`类,它提供了处理...

    Java面试宝典2011最新版

    ### Java面试宝典2011最新版知识点详解 #### 1. Java基本概念与面试常见问题 **1.1 “.java”源文件是否必须包含一个public类?** 解答:一个`.java`源文件不一定要包含一个`public`类。但是,如果包含了`public`...

    java面试宝典

    ### Java面试宝典知识点详解 #### 一、Java基础部分 **1. 一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?** 在一个`.java`源文件中可以定义多个类,但有一个重要的限制:每个源文件只能有...

    二进制的基础上的位运算

    本文将详细介绍五种基本的位运算符:按位与(`&`)、按位或(`|`)、按位异或(`^`)、按位取反(`~`)以及位移运算符(`, `&gt;&gt;`, `&gt;&gt;&gt;`)。 #### 二、按位与(`&`) 按位与运算符用于两个二进制数对应位上的逻辑...

    Java考试习题

    - **题目解析**:本题考察Java中的位移运算符。 - **知识点说明**:`&gt;&gt;&gt;`是无符号右移运算符,将二进制数向右移动指定的位数,高位空出的位置用0填充。对于正数,与`&gt;&gt;`的效果相同;对于负数,则会保留符号位。 - **...

Global site tag (gtag.js) - Google Analytics