【问题标题】:Reading an int in java as a binary sequence using ByteBuffer使用 ByteBuffer 将 java 中的 int 读取为二进制序列
【发布时间】:2013-11-29 23:25:03
【问题描述】:

我正在尝试将一个 int(32 位)读取到一个字节缓冲区对象。

我使用了“Bytebuffer.allocate(4)”方法,我希望将给定 int 的每 8 位(1 个字节)放入 bytebuffer 对象中。

我该怎么做?

(我需要使用它来将每个字节(8 位)转换为 0-255 之间的数字)

编辑:我只是想获得一个 int 的 32 位(它用于一个学校项目,并且作业专门说“我们将使用 int 不是作为数字,而是作为 32 位的二进制序列”,那就是我正在尝试做的事情,但绝对没有成功。

谢谢。

【问题讨论】:

  • this question 有帮助吗?
  • 你想用这些比特做什么?例如,Integer.toBinaryString(int) 将 int 转换为由 0 和 1 组成的二进制字符串。

标签: java int bytebuffer


【解决方案1】:

使用简单的移位和掩码操作:

byte b1 = n & 0xFf;
byte b2 = (n >> 8) & 0xFF;
byte b3 = (n >> 16) & 0xFF;
byte b4 = (n >> 24) & 0xFF;

【讨论】:

    猜你喜欢
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多