站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题比如进行这样的操作 b[1]&OXFF

比如进行这样的操作 b[1]&OXFF

摘要: 比如进行这样的操作 b[1]&OXFF


说明b[1]是byte型的,b[1]=-68,b[2]=-66,是"季"的的字节形式
那么我现想获取他的十六进制表示形式
比如进行这样的操作 b[1]&OXFF,请问他的算法是怎么算的?

还有
public void byte2hex(byte b, StringBuffer buf) {
char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F' };
int high = ((b & 0xf0) >> 4); /**里面的与操作没有看懂,还有右移之后的植是11为什么啊 ?,为什么要右移 */
int low = (b & 0x0f);//还有 这里的为什么就不要移动,不移动,那他取的是什么植?

buf.append(hexChars[high]);
buf.append(hexChars[low]);
}


byte=FF=1111,1111

假设一个byte变量b的2进制为10110111

关于高位的部分

0xF0=11110000

b & 0xf0 得到1011000

然后1011000>>4=1011

1011转换成10进制=11

hexChars[high]就等于hexChars[11]就等于'B';

关于低位

b & 0xf0

0x0F=00001111

b & 0x0f=00000111

00000111直接等于7

hexChars[low]就等于hexChars[7]就等于'7';

接100分


↑返回目录
前一篇: 数据库里面查询的时候增加order by 排序字段
后一篇: System.in问题:错误是Unhandled exception type IOException