private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
public static String byteArrayToString(byte[] is)
{
int i = is.length;
char[] chars = new char[i * 2];
int j = 0;
int k = 0;
while (j < i)
{
int p = is[j++];
chars[k++] = HEX_DIGITS[p >>> 4 & 0xf];
chars[k++] = HEX_DIGITS[p & 0xf];
}
return new String(chars);
}这段程序不明白最后怎么就把数组拼装成String了,谁能给讲讲,谢了!
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
public static String byteArrayToString(byte[] is)
{
int i = is.length;
char[] chars = new char[i * 2];
int j = 0;
int k = 0;
while (j < i)
{
int p = is[j++];
chars[k++] = HEX_DIGITS[p >>> 4 & 0xf];
chars[k++] = HEX_DIGITS[p & 0xf];
}
return new String(chars);
}这段程序不明白最后怎么就把数组拼装成String了,谁能给讲讲,谢了!
解决方案 »
- java 加载jdbc出现not found异常,求解决!急!!!!!!
- 我如何做一个按钮,SQL数据更新后按下这个按钮让JTABLE里边对应的栏目也更新
- 关于applet的一点疑问?
- 我看书上的异常中的Catch语句里总是用System.exit(1),它与System.exit(0)有什么区别呀?
- jdk配置问题
- 急急急~紧急求助一个问题!
- 用java怎么实现像qq那样图标驻留在任务栏!
- JTS,EJB,JavaBean,JDBC,JMSF都是些什么东西?
- 请教:在JB6中怎么样连接数据库!!
- 求解 这题为什么选D? 为什么我觉得是C呢
- java 的对象流 和其他语言咋交流
- 怎样让服务器实现转发.
int p = is[j++]; //按顺序取byte[] is的每个字节
chars[k++] = HEX_DIGITS[p>>>4 & 0xf]; //得到p的高4比特(0~15),转化成字符0~F
chars[k++] = HEX_DIGITS[p & 0xf]; //获得p的低4个比特
}
return new String(chars); //根据数组构造String
如果你想显示在屏幕上,你是希望显示
1 一个换行
2 还是 0D0A 呢如果你希望显示0D0A 那就就用那段代码
=====================================
这是Java语法支持的,数组下标是返回值为int的表达式。至于为什么这样,我是没能力解释了。
=====================================
chars[k++] = HEX_DIGITS[p>>>4 & 0xf];
chars[k++] = HEX_DIGITS[p & 0xf];
=====================================
其中这两段代码是将 byte 数组中的某个元素转换成 “xx”[即 "0D"(表示13),"14"(表示20).. ] 形式吧?那谁能帮解释一下 为什么以 “p>>>4 & 0xf”(p向左位移4后 “按位与”0xf 的数值) 为下标的 HEX_DIGITS 的值必定对应 "xx" 形式中的前一个"x"。 而以 "p & 0xf" 为下标的 HEX_DIGITS 的值必定对应 "xx" 形式中的后一个"x"。 这相当于一个公式,一个定式吗?这是什么原理呢?
public static String byteArrayToStrin(byte[] is)
{
int i = is.length;
int j = 0;
StringBuffer sb = new StringBuffer();
while (j < i)
{
sb.append(is[j++]);
}
return sb.toString();
} 还有查来查去?
存入新的chars数组 最后返回一个String
得到数组对应值后存入chars数组
大可以自己写个WINDOWS出来
我们其实都是在做逻辑层上的事情
有立志算法的就去搞算法 不过怎么看结构还是比算法重要
象这样的位运算 最终目的只为了要一个输出 也就是一个方法
整个结构弄好了 方法效率不对以后可以随便改