浅谈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
0
投稿

猜你喜欢

  • SpringBoot整合Security安全框架实现控制权限

    2022-10-03 14:37:15
  • 浅谈C#六大设计原则

    2023-05-02 16:29:58
  • Java实现MD5消息摘要算法

    2023-06-18 06:37:35
  • C#端口扫描器的编写方法

    2023-12-17 17:47:24
  • C#/VB.NET 给Excel添加、删除数字签名的方法

    2022-03-21 08:29:07
  • Android跳转三方应用实例代码

    2022-02-01 11:15:42
  • 详解Java执行groovy脚本的两种方式

    2021-05-28 09:23:27
  • opencv利用鼠标滑动画出多彩的形状

    2023-11-03 05:20:57
  • Java中使用HashMap时指定初始化容量性能解析

    2023-01-01 11:05:27
  • Unity3d实现Flappy Bird游戏

    2023-09-17 20:54:29
  • 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
  • C#串口通信实现方法

    2023-04-15 06:31:11
  • kill命令在Java应用中使用的注意事项小结

    2023-11-11 13:01:55
  • c#遍历System.drawing.Color下面的所有颜色以及名称以查看

    2022-05-12 06:33:19
  • spring使用JavaConfig进行配置的方法

    2023-08-22 20:52:46
  • Java 常见的限流算法详细分析并实现

    2022-01-05 22:11:09
  • asp之家 软件编程 m.aspxhome.com