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

在Java中将字节转换为长度为4的布尔数组

曹高轩
2023-03-14
问题内容

我需要在Java中将一个字节转换为4个布尔值的数组。我该怎么办?


问题答案:

根据Michael
Petrotta对您的问题的评论,您需要确定8位字节中的哪些位应测试所得的布尔数组。出于演示目的,我们假设您需要最右边的四个位,然后应该可以执行以下操作:

public static boolean[] booleanArrayFromByte(byte x) {
    boolean bs[] = new boolean[4];
    bs[0] = ((x & 0x01) != 0);
    bs[1] = ((x & 0x02) != 0);
    bs[2] = ((x & 0x04) != 0);
    bs[3] = ((x & 0x08) != 0);
    return bs;
}

本例中的十六进制值(0x010x02等)是特殊的位掩码,在所需的位置仅设置了一个位。因此,0x01仅设置了最右边的位,0x08仅设置了从右开始的第四位。通过使用按位AND运算符(&)将这些值与给定字节进行测试,如果该位置1,则将获得该值;否则,将返回零。如果要检查除最右边的四个位以外的其他位,则必须创建不同的位掩码。



 类似资料:
  • 问题内容: 我需要将缓冲区的长度存储在4个字节大的字节数组中。 伪代码: 做到这一点的最佳方法是什么?请记住,稍后我必须将该字节数组转换回整数。 问题答案: 您可以使用以下方式将其转换为字节: 注意,这样做时可能必须考虑字节顺序。

  • 问题内容: 在Java中将a转换boolean为an 的最常用方法是什么int? 问题答案: ^^ PS : true = 1 and false = 0

  • 我需要将一个整数(代表x.509 KeyUsage掩码)转换为布尔数组,在Java中,我有以下可用函数,可以正常工作: 在这种情况下(144),它应该返回 密钥用法={boolean[9]@976}[0]=真[1]=假[2]=假[3]=真[4]=假[5]=假[6]=假[7]=假[8]=假 在Groovy中运行这个时,我得到 org.codehaus.groovy.control.MultipleC

  • 问题内容: 如何将整个读入字节数组? 问题答案: 你可以使用Apache Commons IO处理此任务和类似任务。 该类型具有静态方法来读取和返回。 在内部,这会创建一个并将字节复制到输出中,然后调用。它通过复制4KiB块中的字节来处理大型文件。 分享改善这个答案

  • 我知道我不是第一个问这个问题的人,正如我在标题中提到的,我正在尝试转换字符串值布尔值。 我之前已经将一些值放入本地存储,现在我想获取所有值并将所有值赋给一些布尔变量。 应用程序。组成部分ts 这里是这个。btnLoginNumOne和这个。btnLoginEdit是字符串值(“true,false”)。 镜子组成部分ts 在这个组件中this.btnLoginNumOne和t是布尔值; 我在sta

  • 问题内容: 我想执行转换而不求助于某些依赖于实现的技巧。有小费吗? 问题答案: 您需要知道字节的字节序。 假设(例如@ WhiteFang34),其是一个长度为4的,然后… … 大端: 小端: