看板 java 關於我們 聯絡資訊
※ 引述《poc7667 (poc)》之銘言: : 再寫有關這類的程式 : 我輸入的資料是從Java Text Area讀取 "86 00 00 00 01 82 05 " : 類似這樣的字串 : 然後就直接給他寫入 : outputStream.write(output.getText().getBytes()); : 在Java Text Area資料格式應該是字串,RS232應該是吃"16進位數值資料" : 這樣直接丟過去會不會有錯呢?or應該如何做個轉換才好。 你自己都說是收數值資料囉 :) 以 "86" 來說,這是兩個 unicode 字元, 在記憶體中的值為 0x0038 和 0x0036 ( 印象中 Java 是 big-endian? 若有錯請指正 ) 而所謂的數值 86, 就真的是 16 進位中的 86, 在記憶體中的值就是 0x86 所以你寫入的值確實是有問題的, 如果要自己轉成 "數值" 86, 你可能會需要用到 String 和 Integer 所提供的方法。 讀的部份也是一樣, 從 RS232 收到的是數值, 必須自己轉成 unicode, 才會是你想要看到的數字字串。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.169.116 ※ 編輯: tkcn 來自: 61.230.169.116 (07/31 03:42)
TonyQ:java是big endian沒錯, 我之前有去看過 . @see #161cst5- 07/31 10:48
tkcn:寫到檔案確定是big-endian沒錯,但我不敢肯定記憶體中也是 07/31 14:20