本篇文章主要介紹了Java位元組流與基本資料型別的轉換實例,具有一定的參考價值,有興趣的小夥伴們可以參考一下
在實際開發中,我們經常遇到與嵌入式進行通信的情況,而由於一些嵌入式設備的處理能力較差,往往以二進制的數據流的形式傳輸數據,在此將這些常見的轉換做一總結。
注意:預設傳輸時使用小端模式
將位元組流轉換為int類型資料
public static int getInt(byte[] bytes) { return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16)) | (0xff000000 & (bytes[3] << 24)); }
將位元組流轉換為long類型資料
public static long getLong(byte[] bytes) { return ((0xffL & (long) bytes[0]) | (0xff00L & ((long) bytes[1] << 8)) | (0xff0000L & ((long) bytes[2] << 16)) | (0xff000000L & ((long) bytes[3] << 24)) | (0xff00000000L & ((long) bytes[4] << 32)) | (0xff0000000000L & ((long) bytes[5] << 40)) | (0xff000000000000L & ((long) bytes[6] << 48)) | (0xff00000000000000L & ((long) bytes[7] << 56))); }
將位元組流轉換為float類型資料
# #
public static float getFloat(byte[] bytes){ int temp=getInt(bytes); return Float.intBitsToFloat(temp); }將位元組流轉換為double類型資料
public static double getDouble(byte[] bytes){ long temp=getLong(bytes); return Double.longBitsToDouble(temp); }將int類型資料轉換為位元組流
public static byte[] getByteFromInt(int data){ byte[] temp=new byte[4]; temp[0]=(byte)(0xFF&(data)); temp[1]=(byte)(0xFF&(data>>8)); temp[2]=(byte)(0xFF&(data>>16)); temp[3]=(byte)(0xFF&(data>>24)); return temp; }將long類型資料轉換為位元組流
public static byte[] getByteFromLong(long data){ byte[] temp=new byte[8]; temp[0]=(byte)(0xFF&(data)); temp[1]=(byte)(0xFF&(data>>8)); temp[2]=(byte)(0xFF&(data>>16)); temp[3]=(byte)(0xFF&(data>>24)); temp[4]=(byte)(0xFF&(data>>32)); temp[5]=(byte)(0xFF&(data>>40)); temp[6]=(byte)(0xFF&(data>>48)); temp[7]=(byte)(0xFF&(data>>56)); return temp; }將float類型資料轉換為位元組流
public static byte[] getByteFromFloat(float data){ byte[] temp=new byte[4]; int tempInt=Float.floatToIntBits(data); temp[0]=(byte)(0xFF&(tempInt)); temp[1]=(byte)(0xFF&(tempInt>>8)); temp[2]=(byte)(0xFF&(tempInt>>16)); temp[3]=(byte)(0xFF&(tempInt>>24)); return temp; }將double類型資料轉換為位元組流
public static byte[] getByteFromDouble(double data){ byte[] temp=new byte[8]; long tempLong=Double.doubleToLongBits(data); temp[0]=(byte)(0xFF&(tempLong)); temp[1]=(byte)(0xFF&(tempLong>>8)); temp[2]=(byte)(0xFF&(tempLong>>16)); temp[3]=(byte)(0xFF&(tempLong>>24)); temp[4]=(byte)(0xFF&(tempLong>>32)); temp[5]=(byte)(0xFF&(tempLong>>40)); temp[6]=(byte)(0xFF&(tempLong>>48)); temp[7]=(byte)(0xFF&(tempLong>>56)); return temp; }
以上是Java中位元組流與基本資料型別如何轉換的實例程式碼的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用