您现在的位置:首页 --> 查看专题: 0xff
Java中的一个byte,其范围是-128~127的,而Integer.toHexString的参数本来是int,如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即0xffffffff),那么转化出的结果就不是我们想要的了。
而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,这样,结果中的高的24个比特就总会被清0,于是结果总是我们想要的。
Java中的一个byte,其范围是-128~127的,而Integer.toHexString的参数本来是int,如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即0xffffffff),那么转化出的结果就不是我们想要的了。
而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,这样,结果中的高的24个比特就总会被清0,于是结果总是我们想要的。
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[1110] WordPress插件开发 -- 在插件使用 -
[56] Java开发岗位面试题归类汇总 -
[50] 解决 nginx 反向代理网页首尾出现神秘字 -
[46] web开发设计人员不可不用的在线web工具和 -
[36] 一句话crontab实现防ssh暴力破解 -
[34] 手机产品设计方向 -
[33] Rax 系列教程(长列表) -
[28] 我对学习oracle与成长的理解 -
[28] 程序员疫苗:代码注入 -
[27] 最萌域名.cat背后的故事:加泰与西班牙政府
赞助商广告