求解释该段代码含义

richard_ma 2006-04-04 07:42:13
if (hibyte == 0) {
for (int i = count ; i-- > 0 ;) {
value[i] = (char) (ascii[i + offset] & 0xff);
}
} else {
hibyte <<= 8;
for (int i = count ; i-- > 0 ;) {
value[i] = (char) (hibyte | (ascii[i + offset] & 0xff));
}
}
Note:
int hibyte 为Unicode码高8位
char value[] 为字符型数组
int count 为字符数组长度,即char value = new char[count]

求解该段代码位操作的含义
...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
图门的世界 2006-04-04
  • 打赏
  • 举报
回复
mark
Fifotom 2006-04-04
  • 打赏
  • 举报
回复
应该是把一个ascii编码的字符数组转换为unicode编码吧,
ascii[i + offset] & 0xff该句完成将ascii[i + offset]的高8位请0
hibyte <<= 8;将高8位右移8位
hibyte | (ascii[i + offset] & 0xff)
该句在hibyte完成右移,ascii[i + offset]高8位被清0之后,其实相当于
hibyte + (ascii[i + offset] & 0xff)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧