浅谈byte和长度为8的boolean数组互相转换
作者:jingxian 时间:2023-11-07 00:34:37
由于byte是一个8位字节
所以可以用它来存放数组为8的boolean数组,这些在通信协议会经常用到。这里给出一个java代码对其互相转换的。
package com.udpdemo.test2;
import java.util.Arrays;
public class Test {
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Byte.SIZE);
byte b = 0x35; // 0011 0101
System.out.println(b);
System.out.println(Arrays.toString(getBooleanArray(b)));
//0x35; // 0011 0101
boolean[] array = new boolean[]{false, false, true, true, false, true, false, true};
System.out.println(getByte(array));
}
/**
* 将byte转换为一个长度为8的boolean数组(每bit代表一个boolean值)
*
* @param b byte
* @return boolean数组
*/
public static boolean[] getBooleanArray(byte b) {
boolean[] array = new boolean[8];
for (int i = 7; i >= 0; i--) { //对于byte的每bit进行判定
array[i] = (b & 1) == 1; //判定byte的最后一位是否为1,若为1,则是true;否则是false
b = (byte) (b >> 1); //将byte右移一位
}
return array;
}
/**
* 将一个长度为8的boolean数组(每bit代表一个boolean值)转换为byte
* @param array
* @return
*
*/
public static byte getByte(boolean[] array) {
if(array != null && array.length > 0) {
byte b = 0;
for(int i=0;i<=7;i++) {
if(array[i]){
int nn=(1<<(7-i));
b += nn;
}
}
return b;
}
return 0;
}
}
标签:java,byte,boolean
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot整合Security安全框架实现控制权限
2022-10-03 14:37:15
![](https://img.aspxhome.com/file/2023/3/65583_0s.png)
浅谈C#六大设计原则
2023-05-02 16:29:58
Java实现MD5消息摘要算法
2023-06-18 06:37:35
C#端口扫描器的编写方法
2023-12-17 17:47:24
![](https://img.aspxhome.com/file/2023/5/96295_0s.jpg)
C#/VB.NET 给Excel添加、删除数字签名的方法
2022-03-21 08:29:07
![](https://img.aspxhome.com/file/2023/4/116534_0s.png)
Android跳转三方应用实例代码
2022-02-01 11:15:42
![](https://img.aspxhome.com/file/2023/7/125407_0s.jpg)
详解Java执行groovy脚本的两种方式
2021-05-28 09:23:27
![](https://img.aspxhome.com/file/2023/8/132018_0s.png)
opencv利用鼠标滑动画出多彩的形状
2023-11-03 05:20:57
![](https://img.aspxhome.com/file/2023/6/94046_0s.jpg)
Java中使用HashMap时指定初始化容量性能解析
2023-01-01 11:05:27
Unity3d实现Flappy Bird游戏
2023-09-17 20:54:29
![](https://img.aspxhome.com/file/2023/5/77295_0s.png)
Ajax登录验证实现代码
2022-02-22 10:47:51
java遍历properties文件操作指南
2023-11-23 02:43:45
比较2个datatable内容是否相同的方法
2022-11-25 08:27:04
C#中英文混合字符串截取函数
2023-01-19 06:02:55
全面解析Android之ANR日志
2023-12-18 23:30:21
![](https://img.aspxhome.com/file/2023/3/138103_0s.png)
C#串口通信实现方法
2023-04-15 06:31:11
kill命令在Java应用中使用的注意事项小结
2023-11-11 13:01:55
![](https://img.aspxhome.com/file/2023/9/58889_0s.jpg)
c#遍历System.drawing.Color下面的所有颜色以及名称以查看
2022-05-12 06:33:19
spring使用JavaConfig进行配置的方法
2023-08-22 20:52:46
![](https://img.aspxhome.com/file/2023/8/72298_0s.png)
Java 常见的限流算法详细分析并实现
2022-01-05 22:11:09
![](https://img.aspxhome.com/file/2023/3/71923_0s.png)