淺談byte和長度為8的boolean數(shù)組互相轉(zhuǎ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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring @Valid和@Validated區(qū)別和用法實例
這篇文章主要介紹了Spring @Valid和@Validated區(qū)別和用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04java使用定時器實現(xiàn)監(jiān)聽數(shù)據(jù)變化
這篇文章主要為大家詳細介紹了Java如何使用定時器監(jiān)聽數(shù)據(jù)變化,當滿足某個條件時(例如沒有數(shù)據(jù)更新)自動執(zhí)行某項任務,有興趣的可以了解下2023-11-11詳細介紹Java關鍵字throw?throws?Throwable的用法與區(qū)別
這篇文章主要介紹了java中throws與throw及Throwable的用法和區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04MybatisPlus查詢數(shù)據(jù)日期格式化問題解決方法
MyBatisPlus是MyBatis的增強工具,支持常規(guī)的CRUD操作以及復雜的聯(lián)表查詢等功能,這篇文章主要給大家介紹了關于MybatisPlus查詢數(shù)據(jù)日期格式化問題的解決方法,需要的朋友可以參考下2023-10-10SpringCloud Eureka實現(xiàn)服務注冊與發(fā)現(xiàn)
Eureka是一種基于REST(具像狀態(tài)傳輸)的服務,主要用于AWS云中定位服務,以實現(xiàn)中間層服務器的負載平衡和故障轉(zhuǎn)移。本文記錄一個簡單的服務注冊與發(fā)現(xiàn)實例。感興趣的小伙伴們可以參考一下2019-01-01Java中的clone方法詳解_動力節(jié)點Java學院整理
clone顧名思義就是復制, 在Java語言中, clone方法被對象調(diào)用,所以會復制對象。下面通過本文給大家介紹java中的clone方法,感興趣的朋友一起看看吧2017-06-06