java 语法

damonZengg 2010-01-07 06:58:56
void writeCode(OutputStream os, int code) throws IOException
{
for (int i=0;i<numOfBits;++i) {
os.write(code&1) ;
code /= 2 ;
}
}

numOfBits = 12 ;

dict = new LimitedDict(1<<numOfBits)


请各位大虾解释一下红色部分的代码是什么意思。
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shengyihu555 2010-01-07
  • 打赏
  • 举报
回复
1楼是正解
xiezhifu 2010-01-07
  • 打赏
  • 举报
回复
code&1是按位与,例如code的值为3用二进制表示为00000000 00000000 00000000 00000011,1用二进制表示为00000000 00000000 00000000 00000001(java中int占4个字节),code&1就把它们转换成二进制进行每一位每一位对应进行与运算。因此上面的结果为00000000 00000000 00000000 00000001

code&1的基本作用为求code的最后一位数或把除最后一位之外的数全部置0

1 < <numOfBits则是将1向左移12位,结果为00000000 00000000 00010000 00000000

具体的代码功能自己结合整个项目自己总结

50,541

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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