數值型別與byte 相互t轉換

2021-08-27 07:26:01 字數 960 閱讀 3391

在對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...