当前位置: 首页 > 编程笔记 >

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

公冶浩慨
2023-03-14
本文向大家介绍浅谈byte和长度为8的boolean数组互相转换,包括了浅谈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数组互相转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Java 图片与byte数组互相转换实例,包括了Java 图片与byte数组互相转换实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 文件解析: FileImageOutputStream 换成了 FileOutputStream FileImageInputStream 换成 FileInputStream 以上这篇Java 图片与byte数组互相转换实例就是小编分享给大家

  • 本文向大家介绍浅谈JS 数字和字符串之间相互转化的纠纷,包括了浅谈JS 数字和字符串之间相互转化的纠纷的使用技巧和注意事项,需要的朋友参考一下 字符串转数字 1 parseInt() 函数 parseInt() 函数从string的开始解析,返回一个整数 parseInt('123') : 返回 123; parseInt('1234xxx') : 返回 1234; parseInt('123.4

  • 本文向大家介绍golang中struct和[]byte的相互转换示例,包括了golang中struct和[]byte的相互转换示例的使用技巧和注意事项,需要的朋友参考一下 在网络传输过程中,经常会这样处理:socket接收到数据,先获取其消息头,然后再做各种不同的业务处理。在解析消息头的时候的方法有多种多样。其中最为高效解析消息头的方法就是直接把数据头部分强制类型转换为对应的消息头结构体。这种做法

  • 问题内容: 我将类型为DataTable的对象保存到SQL 2005数据库中的类型为varbinary的字段中。我想找回它,但无法键入强制转换。这就是我保存它的方式。 “ dt”是DataTable对象实例。 问题答案: 您在说的是二进制序列化和反序列化。也许这会有所帮助。

  • 本文向大家介绍Java基本类型与byte数组之间相互转换方法,包括了Java基本类型与byte数组之间相互转换方法的使用技巧和注意事项,需要的朋友参考一下 Java基本类型与byte数组之间相互转换,刚刚写的 以上这篇Java基本类型与byte数组之间相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍浅谈C#下winform和JS的互相调用和传参(webbrowser),包括了浅谈C#下winform和JS的互相调用和传参(webbrowser)的使用技巧和注意事项,需要的朋友参考一下 不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过messagebox的方法show出来。