黑马程序员技术交流社区
标题:
学习JAVA时遇到的问题。希望有人能精准的点出问题所在
[打印本页]
作者:
xc29417412
时间:
2015-1-1 16:43
标题:
学习JAVA时遇到的问题。希望有人能精准的点出问题所在
本帖最后由 xc29417412 于 2015-1-1 17:22 编辑
/*
问题来了,为什么key=key>>>4,为什么是右移4位呢,为什么不是 3位,请大神点出来 啊
*/
class Kobe
{
public static void tobin(int key)
{
char[] ch={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8]; //定义一个临时贮存
int pos=0;
while(key!=0 )
{
int tem=key & 15;
key=key>>>4;
arr[pos++]=ch[tem];
}
for(int a=pos;a>=0;a--)
{
System.out.print(arr[a]);
}
}
作者:
邓士林
时间:
2015-1-1 16:43
本帖最后由 邓士林 于 2015-1-1 19:13 编辑
这个是毕老师讲的,、此处是进行进制转换,转为16进制,计算机中4位2进制代表一位16进制数,由于做&运算后,该为如果为16要进位,所以int tem=key & 15; 15的二进制1111,运算后得出一位,所以连续&15,就key=key>>>4;取到下一个16进制的位数
作者:
小平
时间:
2015-1-1 17:36
什么问题
作者:
bin393973282
时间:
2015-1-1 18:06
此程序是将二进制转为16进制,四个二进制位代表一个16进制位int tem=key&15是将二进制取最后四位,再次取时就需要向右移4位。
作者:
以利亚
时间:
2015-1-4 20:49
好,顶起,大赞
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2