java - java中的逻辑右移运算符

标签 java

我是java初学者...我已经尝试了很多,但找不到以下行的方法

System.out.println (-1>>>1);

给出2147483647?

有人可以帮助我吗?

最佳答案

这是因为binary representation -1 的值为 11111111111111111111111111111111。当您对其执行无符号右移位操作 (>>>) 时,它会将参数的所有位向右移动(在本例中为 1)并填充左侧的空格带有零,因此您会得到 01111111111111111111111111111111,它是 Integer.MAX_VALUE = 2147483647 的二进制表示形式(不确定您从哪里获得 2147483648)。

关于java - java中的逻辑右移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467312/

相关文章:

java - 为什么 DateFormat.format(date) 给出的时间与 date.toString() 不同?

java - jssc没有收到信号

java - Spring Security OAuth Java 配置

java - 在 JRuby 中将 BufferedImage 编码为 Base64 (Java)

java - 什么时候使用 EntityManager 的 createQuery() 和 find() 方法?

java - 监听不同的客户端(java)

java - 具有寻路算法的迷宫

java - Trimmomatic 不确认 Linux 集群上的命令

java - 无法在 Android 应用程序的 HttpUrlConnection 中设置 header

java - 列索引超出范围,3 > 2。嵌套异常是 java.sql.SQLException :