我正在使用ZigBee,我從一個終端設備的傳感器接收數據,並且我想從十六進制轉換爲整數。數據是從4字節,這個信息是關於電池,我得到的將是這樣的一個例子:「00 00 00 e1」(但沒有空白),我需要通過這個電壓,但首先我想我需要把它傳遞給int。十六進制爲整數(4字節)
任何人都可以幫助我嗎?我正在爲Android做我的應用程序。
預先感謝您。
我正在使用ZigBee,我從一個終端設備的傳感器接收數據,並且我想從十六進制轉換爲整數。數據是從4字節,這個信息是關於電池,我得到的將是這樣的一個例子:「00 00 00 e1」(但沒有空白),我需要通過這個電壓,但首先我想我需要把它傳遞給int。十六進制爲整數(4字節)
任何人都可以幫助我嗎?我正在爲Android做我的應用程序。
預先感謝您。
int n = (int)Long.parseLong(st.replaceAll("\\s+",""), 16);
( st是你的字符串)。兩件事:
replaceAll
去掉任何空格。
我通過Long
解析器去規避NumberFormatExceptions
爲陰性
將字符串參數如在由第二個參數
實施例中指定的基數中的一個符號的整數:
Integer.parseInt("-FF", 16) // pass 16 to indicate an hexadecimal value
=> -255
感謝您的回覆,那麼,我可以使用這個函數將數據轉換爲int,那麼只有我必須將它傳遞給電壓不? – Despotars
@Despotars我不明白你的問題。該函數將從十六進制轉換爲整型。同樣,函數'Integer.toString()'將從int轉換爲十六進制。根據需要使用它們。 –
你接收一個字符串(' 「000000e1」')或字節數組('0×00,0×00,0×00,0xe1')?您將最終使用不同的代碼將每個表示處理爲一個大端的32位無符號整數。 – tomlogic