Java simple boolean[] to byte conversion(Java 简单的 boolean[] 到字节转换)
问题描述
我有一个包含 8 个布尔值的数组,我想简单地将其转换为一个字节.有没有一种简单的方法可以做到这一点?还是我必须使用 for 循环?
I have an array of 8 booleans which I want to simply convert to a byte. Is there a simple way to do this? Or do I have to use for loop?
如果存在,我个人更喜欢最多两行的简单解决方案.
Personally I'd prefer a simple up to two lines solution if it exists.
感谢您的帮助.
可能的重复只是一个字节的布尔值,我有一个数组.
Possible duplicate is just one boolean to a byte, I have an array.
另一个我从 udp 数据包中获取一个字节,然后将第一位(布尔值)设置为 false,然后我需要再次从中获取一个字节.
ANOTHER I get a byte from a udp packet then I set the first bit (boolean) to false, then I would need to get a byte out of that again.
推荐答案
我认为循环更好,但如果你必须有一个单行:
I think a loop is better, but if you must have a one liner :
byte b = (byte)((bool[0]?1<<7:0) + (bool[1]?1<<6:0) + (bool[2]?1<<5:0) +
(bool[3]?1<<4:0) + (bool[4]?1<<3:0) + (bool[5]?1<<2:0) +
(bool[6]?1<<1:0) + (bool[7]?1:0));
对于输入:
boolean[] bool = new boolean[] {false,false,true,false,true,false,true,false};
你得到字节 42.
这篇关于Java 简单的 boolean[] 到字节转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Java 简单的 boolean[] 到字节转换


基础教程推荐
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 降序排序:Java Map 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01