作者poc7667 (poc)
看板java
标题Re: 关於 RS232 传输接收资料
时间Thu Oct 2 02:00:45 2008
※ 引述《tkcn (小安)》之铭言:
: 你的 endian 观念还是错的很离谱,
恩。我连nibble都换了
: 还有我认为这只程式根本不需要用到 endian 的转换。
: ※ 引述《poc7667 (poc)》之铭言:
: : 意思是说int k=Integer.parseInt(sentBuf[i],16);
: : 之後就直接 outputStream.write(k);出去了吗?
: : 这边就算先把他转成binaryString 再去parse他,直接丢出去,
: : 应该也不影响结果吧?
: : 16进位,2进位,最终出去都是signal
: : 只是给人看的而已!
: 对..16进位, 2进位是给人看的,
: 你要送出去的应该是真正的 value,
: 而不是那 XX 进位的字串。
: 建议你还是先厘清观念吧,
我到了这边,就不是在送字串了
int k=Integer.parseInt(sentBuf[i],16);
outputStream.write(k);
转成binaryString 再去parse他 <-也没有打算要送字串出去。
: 现在这样乱枪打鸟不是办法。
因为document 没有说机器真正东西要怎麽吃,所以就是乱枪打鸟....
不过自己最大问题是,javadoc也没去弄好资料型态
outputStream.write 他吃int 只吃 unsigned 会自动被mod 256
要送的话还是要送byte出去 (byte) Integer.parseInt(XX,16)
byte 会把value 转成 2's complemnt... -128 ~ 127
要转回int看的话,要再做一下mask 因为长度不同
这几篇文章还是感谢你的指点 XD
终於弄好这个,原本不觉得问题的小东西了。
IO...感觉不是写程式的重点不起眼,但是又十分的重要。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.198.188
※ 编辑: poc7667 来自: 140.113.198.57 (10/02 12:42)