在對float型別資料做持久化過程中需要將float轉化成byte 型別的資料。最簡單的辦法是將float型別的資料轉化成string,然後呼叫string的getbytes()方法就行了。但是使用這個方式儲存的資料占用的磁碟空間更大,一般需要6個位元組,而且隨著精度越過占用的位元組數也越大。
更好的辦法是用是先將浮點數轉化成int型別,然後將int型別轉化成byte 陣列儲存,這樣儲存的位元組長度恆定為4個位元組。**如下:float fvalue= 1.20004f;
byte data = byte[4];
int ivalue = float.floattointbits(fvalue);
data[0] = (byte)(ivalue >> 24);
data[1] = (byte)(ivalue >> 16);
data[2] = (byte)(ivalue >> 8);
data[3] = (byte) ivalue;
return data;
這個操作使用了左移動操作來將int賦值給長度為4的int陣列。
如果要將byte[4] 轉化為float,可以執行以下操作:
int ivalue = ((data[0] & 0xff) << 24) | ((data[1] & 0xff) << 16)
| ((data[2] & 0xff) << 8) | (data[3] & 0xff);
system.out.println(float.intbitstofloat(ivalue));
long 和byte的相互轉換:
long -> byte:
static byte toarray(long val)
byte->long
static long tolong(byte b)
byte 與string相互轉換
c 中byte與string相互轉換及string與sql server中nvarchar的轉換問題 最近在寫專業實踐 資料庫加密,找出以前寫的md5 des程式,編成兩個動態鏈結庫md5.dll des.dll,在這把我遇到的問題分享下 1 byte與string的相互轉換 首先在c 中strin...
bitmapimage與byte 相互轉換
wpf image byte wpf bitmapimage 有時要實現bitmapimage與byte相互轉換,這裡實現兩個靜態方法,直接呼叫即可。byte轉換為bitmapimage public static bitmapimage bytearraytobitmapimage byte by...
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...