Re: [問題] 請問一下為何要做bitwise運算

看板java作者 (小安)時間14年前 (2011/03/28 15:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Schatze (吃哈吱)》之銘言: : 最近在研究android nfc的功能. : 有一段是在parse出nfcrecord的payload. : 請問這部份使用bitwise用意為何呢? : 謝謝. : static NDEFRecord readRecord(byte[] bytes, int offset) { : int header = bytes[offset] & 0xFF; java 的 byte 是 signed ,也就是範圍為 -128~127, 但資料畢竟只是 binary, 若是要將存在 byte 裡頭的資料視為 unsigned 也並無不可, (在影像處理、網路傳輸領域經常會這樣使用) 只要自己在轉型時正確處理即可。 以此處來說,如果只寫: int header = bytes[offset]; 當 bytes[offset] 的值為負數時 (以 signed 的方式來看), 則轉型成 int 後也會是負數,變成 0xFFFFFF?? 的型式。 因此如果你希望將 bytes[offset] 視為 unsigned, 就要自己做對應處理。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231
文章代碼(AID): #1Da3l6J4 (java)
文章代碼(AID): #1Da3l6J4 (java)