在面试或者平时看源码或者其他的什么的时候经常看到<< >> 这种运算,虽然大学学过什么位移但是你懂得,网上看了很多人的讲解,最后汇总下:
比如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语言中的一种基本运算符,用于对二进制数进行位移操作。移位运算符主要包括左移位运算符()、右移位运算符(>>>)和带符号的右移位运算符(>>)。这些运算符可以单独...
5. **位移运算符** `, `>>`, `>>>`:从左到右结合。 - **左移** `将二进制数的各位向左移动。 - **右移** `>>`:将二进制数的各位向右移动。 - **无符号右移** `>>>`:与右移类似,但高位补0。 6. **比较运算符*...
#### 四、具体运算符详解 - **算术运算符**: - `+`:加法运算。 - `-`:减法运算。 - `*`:乘法运算。 - `/`:除法运算。 - `%`:取模运算,返回除法的余数。 - **自增自减运算符**: - `++`:自增运算符,...
### JAVA位运算详解 在Java编程中,位运算是一门精细的艺术,涉及到对整数类型的二进制位进行直接操作。这些操作不仅能够优化代码执行效率,还常用于实现特定的算法需求。本文将深入探讨Java中的位运算,包括位...
位移运算符示例:2 的结果是什么?** `2 表示将2的二进制表示左移3位,即0010变为100000,因此结果为32。 **15. String类有length()方法吗?** 是的,`String`类确实有`length()`方法,用于返回字符串的长度。 ...
在Java中,可以使用位移运算符`>>>`和`来实现行移位,使用异或操作符`^`来实现列混淆。 5. **轮密钥加** 轮密钥加是将密钥与当前轮的中间结果进行异或,增加算法的不可预测性。在Java中,这可以通过简单的异或操作...
- **位移运算符**: - `>>` 和 `>>>`: 分别代表算术右移和逻辑右移。 #### 四、总结 本篇文章通过对给定文件标题、描述、标签以及部分内容的分析,深入探讨了Java考试中涉及的重要知识点。从Java开发工具、语言...
在Java中,位移运算符(`和 `>>`)用于将二进制位向左或向右移动指定的位置。然而,Java对位移运算进行了一项优化处理,特别是当移位的数量超过32位时。根据Java规范,对于`int`类型,如果位移量超过32位,实际上...
### Java编程基础语法详解 #### 一、Java语言概述与特点 Java作为一种广泛使用的编程语言,其设计初衷是为了实现“一次编写,到处运行”的理念。Java语言由语法规则和类库两大部分组成,其中语法规则是编程的基础...
- **知识点概述**:可以使用位移运算符`来快速计算2乘以8,即`2 。 #### 六、static方法内部调用非static方法的可能性 - **知识点概述**:从静态(`static`)方法内部无法直接调用非静态方法。非静态方法依赖于...
- 用最有效率的方法计算 `2 * 8` 可以直接写 `2 ,这是利用位移运算符进行快速乘法。 以上是对 Java 面试题中涉及的基础知识的详细解释,涵盖了面向对象、数据类型、操作符、内存管理和控制流等多个方面。理解并...
### Java最新面试宝典知识点详解 ...- 使用位移运算符 `是计算 2 的倍数的一种非常高效的方法。 ```java int result = 2 ; // 结果为 4 ``` - 位移运算比乘法运算更快,特别是在处理大整数时效率更高。
8. **效率计算2乘以8**:最有效率的方法是使用位移运算符:`2 ,这相当于2乘以2的3次方,即8。 9. **设计大整数计算器**:设计一个能处理大整数的计算器,可以使用BigInteger类,它能处理超过int和long范围的大整数...
计算`2*8`的最有效率方式可能是使用位移运算符:`2 ,这相当于将二进制数左移三位,达到乘以8的效果。 **9. 设计一个百亿级计算器** 设计百亿级计算器涉及到大数运算,可以使用Java的`BigInteger`类,它提供了处理...
### Java面试宝典2011最新版知识点详解 #### 1. Java基本概念与面试常见问题 **1.1 “.java”源文件是否必须包含一个public类?** 解答:一个`.java`源文件不一定要包含一个`public`类。但是,如果包含了`public`...
### Java面试宝典知识点详解 #### 一、Java基础部分 **1. 一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?** 在一个`.java`源文件中可以定义多个类,但有一个重要的限制:每个源文件只能有...
本文将详细介绍五种基本的位运算符:按位与(`&`)、按位或(`|`)、按位异或(`^`)、按位取反(`~`)以及位移运算符(`, `>>`, `>>>`)。 #### 二、按位与(`&`) 按位与运算符用于两个二进制数对应位上的逻辑...