黑马程序员技术交流社区
标题:
一段代码中的一句没看明白,求解答
[打印本页]
作者:
youtianlong123
时间:
2014-11-8 19:15
标题:
一段代码中的一句没看明白,求解答
public static int trimGBK(byte[] buf,int n){
int num = 0;
boolean bChineseFirstHalf = false;
for(int i=0;i<n;i++)
{
if(buf[i]<0 && !bChineseFirstHalf){
bChineseFirstHalf = true;
}else{
num++;
bChineseFirstHalf = false;
}
}
return num;
复制代码
上面代码的第六行,If语句中的buf
<0,为什么做出这样的判断,在什么情况下一个字节才能小于0?
作者:
默默丶
时间:
2014-11-8 19:23
buf【i】<0 这是汉字的前半个字节的ASC是小于0的所以只要buf[i]<0默认为这是汉字只读取了一半
作者:
baoting_1990
时间:
2014-11-8 19:46
为什么汉字的前半个字节的ASC小于0,汉字的ASC是什么格式的
作者:
youtianlong123
时间:
2014-11-8 20:15
默默丶 发表于 2014-11-8 19:23
buf【i】
这个知识点在毕老师的哪节课讲过,我没印象了,你能告诉我吗,我再去看看
作者:
奋斗的蜗牛ksd
时间:
2014-11-9 00:14
学系一下
作者:
hailong
时间:
2014-11-9 00:46
ASCII码表中一个汉字是用两个负数来表示的,所以当buf[i]<0时就是一个负数,也就是表示半个汉字
作者:
cs8630323
时间:
2014-11-9 02:27
不说这方法用来干嘛的
所以这问题没意义
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2