java - 哪一位实际移位了 << 运算符?

标签 java binary

我对提供算术移位的运算符感到困惑 << , >>在Java中

例如我有这个二进制数:

   0000 0101 // It is actually 5 in dec system

现在我想把这个数字向左移动 2 个位置。我正在这样做(这只是移位的概念):

 0000 0101 << 2

现在我不知道:是否需要将高位移动 2 个位置并在右侧填充零或者我需要将整数( 101 )移动2个位置

最佳答案

第二个选项:)
例如,0110001 << 2 = 1000100

其他运算符是:

  • 有符号右移 ( >> )

    0011001 >> 2 = 0000110
    1011001 >> 2 = 1110110

    最左边的位用作左填充。这样做是为了传播符号位(最高位)。

  • 无符号右移 ( >>> )

    1110001 >> 2 = 0011100

    由于该数字被视为无符号,因此无需传播任何内容,只需用零填充即可!

关于java - 哪一位实际移位了 << 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667231/

相关文章:

java - 从数据库中获取 HTML 代码作为普通文本

c - 套接字:如何使用 inet_pton() 屏蔽二进制形式的 ip 地址

python - 将类保存到二进制文件中 - Python

java - 维护以前搜索的历史记录

java - 在 Android 中创建波形 UI

java - 如何将在类方法中创建的实例传递给同一类中的另一个方法?

python - Numpy fromfile 的两种实现?

sql - 我需要从sql中的二进制信息生成一个文件

javascript - NodeJs 以丑陋的二进制格式接收 UDP 数字

java - 定位 S+(版本 31 及更高版本)需要指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一