longlong與byte陣列互轉

2021-09-11 17:16:40 字數 669 閱讀 9482

最近做通訊,自己寫報文協議,收發4位元組16進製制數。將十進位制與16進製制轉化,還區分有無符號,自己寫的程式70多行,發現這位大神寫的極為簡單,測試半天沒有錯誤,標記一下,待後期再深究。

原文:interestingpdd

最近做乙個專案 要傳udp包  包裡包含很多資訊 就是把一些資訊用byte表示 所以包含很多byte的轉換 這裡記錄一下  在網上沒查到 只有int的轉換這裡的例子是8個位元組代表乙個long long資料。long long轉為byte陣列

+ (byte*)longlongtobyte:(long long)value

byte陣列轉為long long

+ (longlong)bytetolonglong:(byte*)byte

下面是自己改寫的。

//4位元組,32位10進製轉16進製制

void dec2hex(long long in_decvalue, byte* out_hexbit)

//4位元組,16進製制轉32位10進製

void hex2dec(byte* in_hexbit, long long *out_decvalue)

& 0xff的理解:

&0xff可以將高的24位置為0,低8位保持原樣。這樣做的目的就是為了保證二進位制資料的一致性。

參考:

structure與byte陣列相互轉換

public type us a as long b as double c as string 48 end type public data1 as us public outarray as byte 如果將 data1轉換成 byte陣列呢?還有如何恢復byte陣列到 data1中呢?用co...

flex中byte陣列與String互換

1.將 string 轉換成 bytearray.public function convertstringtobytearray str string bytearray return bytes 2.將 bytearray 轉換成 string.public function convertby...

go陣列與切片, byte轉string

陣列 同一種資料型別的固定長度序列 陣列的定義 var a len int 比如 var a 5 int 長度是陣列型別的一部分,因此,var a 5 int 和 var a 10 int 是不同的型別 func array var age1 5 int var age2 int var str 5...