Re: [問題] 請問一下為何要做bitwise運算
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):