作者tkcn (小安)
看板java
标题Re: [问题] 请问一下为何要做bitwise运算
时间Mon Mar 28 15:41:54 2011
※ 引述《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