浅谈byte和长度为8的boolean数组互相转换

 更新时间:2016年11月16日 08:51:44   投稿:jingxian  
下面小编就为大家带来一篇浅谈byte和长度为8的boolean数组互相转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

由于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;
  }
  
}

以上这篇浅谈byte和长度为8的boolean数组互相转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mybatis如何处理返回结果集

    mybatis如何处理返回结果集

    这篇文章主要介绍了mybatis如何处理返回结果集问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Spring @Valid和@Validated区别和用法实例

    Spring @Valid和@Validated区别和用法实例

    这篇文章主要介绍了Spring @Valid和@Validated区别和用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • java使用定时器实现监听数据变化

    java使用定时器实现监听数据变化

    这篇文章主要为大家详细介绍了Java如何使用定时器监听数据变化,当满足某个条件时(例如没有数据更新)自动执行某项任务,有兴趣的可以了解下
    2023-11-11
  • 详细介绍Java关键字throw throws Throwable的用法与区别

    详细介绍Java关键字throw throws Throwable的用法与区别

    这篇文章主要介绍了java中throws与throw及Throwable的用法和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 网络爬虫案例解析

    网络爬虫案例解析

    本文主要介绍了网络爬虫的小案例。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • MybatisPlus查询数据日期格式化问题解决方法

    MybatisPlus查询数据日期格式化问题解决方法

    MyBatisPlus是MyBatis的增强工具,支持常规的CRUD操作以及复杂的联表查询等功能,这篇文章主要给大家介绍了关于MybatisPlus查询数据日期格式化问题的解决方法,需要的朋友可以参考下
    2023-10-10
  • Activiti开发环境的搭建过程详解

    Activiti开发环境的搭建过程详解

    这篇文章主要介绍了Activiti开发环境的搭建过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • SpringCloud Eureka实现服务注册与发现

    SpringCloud Eureka实现服务注册与发现

    Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。本文记录一个简单的服务注册与发现实例。感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Java中的clone方法详解_动力节点Java学院整理

    Java中的clone方法详解_动力节点Java学院整理

    clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。下面通过本文给大家介绍java中的clone方法,感兴趣的朋友一起看看吧
    2017-06-06
  • spring 如何将配置信息注入静态变量的方法

    spring 如何将配置信息注入静态变量的方法

    本篇文章主要介绍了spring 如何将配置信息注入静态变量的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论