当前位置: 首页 > 面试题库 >

如何在Java中将int转换为三个字节?

何涵衍
2023-03-14
问题内容

我正在尝试将一个转换int成三个bytes表示那个int(大端)。

我敢肯定,这与位和移位有关。但是我不知道如何去做。

例如:

int myInt;

// some code

byte b1, b2 , b3; // b1 is most significant, then b2 then b3.

*注意,我知道一个int是4个字节,三个字节有上溢/下溢的机会。


问题答案:

要获取最低有效字节:

b3 = myInt & 0xFF;

第二个最低有效字节:

b2 = (myInt >> 8) & 0xFF;

和第三个最低有效字节:

b1 = (myInt >> 16) & 0xFF;

说明:

将值与0xFF(二进制为11111111)按位与将返回该数字中的最低有效8位(位0至7)。将数字右移8次会将第8至15位置于第0至7位位置,因此与0xFF进行与运算将返回第二个字节。类似地,将数字右移16次会将第16至23位置于第0至7位位置,因此与0xFF进行与运算可返回第3个字节。



 类似资料:
  • 我目前正在处理一些小的endian二进制数据,我已经到了一个尴尬的地步,需要将奇数字节转换成整数值。 现在使用类,我能够很好地使用函数读取int和long,它们分别读取4和8个字节。 然而,在本例中,我需要读取三个字节,并将它们转换为int。我尝试过使用(2字节1字节),但我认为这不是正确的方法。 我猜我需要对字节进行位移位才能得到正确的int值,但我总是对位移位感到困惑。 此外,我还以为字节缓冲

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 我一直在这里找到问题,并且Google的人们遇到了麻烦,而不是遇到了其他麻烦。但我敢肯定,我不是以前已经从去碰到这种情况的唯一一个到。 我发现的唯一其他答案是“首先将其设置为Long”,这实际上并没有解决这个问题。 我最初尝试投射,但得到了“ ” 如您所料,我有点困惑,我被困住了,因为有些内容以形式出现,而我要存储其信息的实体要求序列号为Long。 问题答案: 请注意,强制转换为和强制

  • 问题内容: (我是Java编程的新手) 我有例如: 我需要在撇号中得到数字9本身。我尝试执行以下操作 但这没用。 那么我该怎么做才能得到撇号呢? 问题答案: ASCII表的排列方式是使字符的值比的值大九;字符的值比的值大8 ; 等等。 因此,您可以通过减去以获得十进制数字char的int值。

  • 问题内容: 如何转换成? 当然,除了循环地逐项执行之外,我对任何其他答案都感兴趣。但是,如果没有其他答案,我将选择一个作为最佳答案,以证明此功能不是Java的一部分。 问题答案: 没有捷径可转换为因为它不会处理拳击,只会创建你不想要的。你必须制作一个实用程序方法。

  • 问题内容: 我有一个长度为4的大型数据集,我想计算4个整数的每种特定组合出现的次数。这与计算文档中的单词频率非常相似。 我想创建一个, 将每个映射到正在运行的计数的列表,但是列表不使用原始类型。 所以我做了 我的数据存储为一个,所以我的循环应该像 我不确定在注释中需要什么代码才能完成将转换int[]为的工作Integer[]。也许我从根本上对正确的方法感到困惑。 问题答案: 使用Java 8,可以