请问以下java代码中Integer.toHexString(b&0xff)括号中为什么要写b&0xff,请问有什么作用?表示什么意思?

 publicstaticStringtoHexString(byte[]md5){   StringBuilderbuf=new...  public static String toHexString(byte[] md5) {    StringBuilder buf = new StringBuilder();    for (byte b : md5) {      buf.append(leftPad(          Integer.toHexString(b&0xff), '0', 2));    }    return buf.toString();  }  public static String leftPad(      String hex, char c, int size) {    char[] cs = new char[size];    Arrays.fill( cs, c);    System.arraycopy(hex.toCharArray(), 0,         cs, cs.length-hex.length(), hex.length());    return new String(cs);  }  public static void main(String[] args) {    System.out.println(md5("1234"));    //81dc9bdb52d04dc20036dbd8313ed055 -> 1234      } 展开
 我来答
华帝大本营
2017-04-06
知道答主
回答量:23
采纳率:0%
帮助的人:7.2万
展开全部
在32位的电脑中数字都是以32格式存放的,如果是一个byte(8位)类型的数字,他的高24位里面都是随机数字,低8位才是实际的数据。java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个方法会把这个数字的高24为也看作有效位,这就必然导致错误,使用& 0XFF操作,可以把高24位置0以避免这样错误的发生。
百度网友492224e
2012-02-14 · TA获得超过203个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:183万
展开全部
没用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式