浅谈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数组互相转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring @Valid和@Validated区别和用法实例
这篇文章主要介绍了Spring @Valid和@Validated区别和用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-04-04详细介绍Java关键字throw throws Throwable的用法与区别
这篇文章主要介绍了java中throws与throw及Throwable的用法和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04
最新评论