欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談byte和長度為8的boolean數(shù)組互相轉(zhuǎn)換

 更新時間:2016年11月16日 08:51:44   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談byte和長度為8的boolean數(shù)組互相轉(zhuǎn)換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

由于byte是一個8位字節(jié)

所以可以用它來存放數(shù)組為8的boolean數(shù)組,這些在通信協(xié)議會經(jīng)常用到。這里給出一個java代碼對其互相轉(zhuǎn)換的。

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轉(zhuǎn)換為一個長度為8的boolean數(shù)組(每bit代表一個boolean值)
   * 
   * @param b byte
   * @return boolean數(shù)組
   */
  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數(shù)組(每bit代表一個boolean值)轉(zhuǎn)換為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數(shù)組互相轉(zhuǎn)換就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論