java - 为什么带符号的右移会带来 1 而不是只在最重要的位置保留 1?

标签 java

...并带入 0。

例如:

1111 0110 >> 2

给予

11 1111 01

根据一些注释。

为什么带1?为什么不将最左边的位保留为 1 并带入 0?

向右移动是不是有点像除以 2?如果是这样,难道不应该带入 0 吗?

最佳答案

您希望右移等同于除以 2。假设这是一个带符号的 8 位数字,则为 -128:

1000 0000

这是-64:

1100 0000

所以这是你建议的反例。

关于java - 为什么带符号的右移会带来 1 而不是只在最重要的位置保留 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902280/

相关文章:

java, android, 解析 url, 获取重定向的 uri

java - 在mapreduce作业中设置自定义文件格式类

java - ArrayList 意外越界结果

java - Java 中的主线程与 UI 线程

java - 包 org.apache.hadoop.fs 不存在

java.sql.SQL语法错误异常 : Syntax error: Encountered "(" at line

java - 将表单提交到外部链接(但在这样做之前进行本地操作)

java - 鉴别器,带有 Hibernate 后端的 WrongClassException JPA

java - 检查混音器线路中的音频播放电平?

java - 如何从运行时构建的上下文中恢复状态机?