资源说明:Java对byte 的 + – * / >> >>> << & | ^ (加,减,乘,除,右移,左移,无符号右移,位与,位或,位异或)操作,均会是首先将byte转化为int, 再行运算。这一事实可能导致多种问题:
假设我们想进行如下byte运算: 1111 1000 右移1位,再与0000 0001 或运算,得 0111 1101。
直觉写程序如下:
byte b = 0xf8;
byte b2 = b >> 1 | 0x01;
这个写法里有多重错误,现逐个纠正:
1 编译器报错,int无法直接自动转化为byte
为解决此问题,加强制转化。
b
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。