1 回答

TA貢獻1895條經(jīng)驗 獲得超7個贊
采用Float.floatToRawIntBits()函數(shù)將float類型轉(zhuǎn)換成對應的32bit整數(shù)類型,然后將其拆分成兩個short類型。代碼大致如下:
float value = 要轉(zhuǎn)換的浮點數(shù)
int intBits = Float.floatToRawIntBits(value);
short[] send = new short[]{(intBits >> 16) & 0xFFFF, intBits & 0xFFFF};
這里取到的send就是你可以用來發(fā)送的兩個16bit數(shù)組
附上floatToRawIntBits說明:
Float.floatToRawIntBits
public static int floatToRawIntBits(float value)根據(jù) IEEE 754 浮點“單一格式”位布局,返回指定浮點值的表示形式,并保留非數(shù)字 (NaN) 值。
第 31 位(掩碼 0x80000000 選定的位)表示浮點數(shù)的符號。第 30-23 位(掩碼 0x7f800000 選定的位)表示指數(shù)。第 22-0 位(掩碼 0x007fffff 選定的位)表示浮點數(shù)的有效位數(shù)(有時也稱為尾數(shù))。
如果參數(shù)為正無窮大,則結(jié)果為 0x7f800000。
如果參數(shù)為負無窮大,則結(jié)果為 0xff800000。
如果參數(shù)為 NaN,則結(jié)果是表示實際 NaN 值的整數(shù)。與 floatToIntBits 方法不同,floatToRawIntBits 不壓縮所有將 NaN 編碼為一個“規(guī)范”NaN 值的位模式。
在所有情況下,結(jié)果都是一個整數(shù),將其賦予 intBitsToFloat(int) 方法將生成一個與 floatToRawIntBits 的參數(shù)相同的浮點值。
添加回答
舉報