下面是毕老师讲的例子,将二进制中的每四位提取出来用十六进制表示,例子中只提了两个十六进制的值,能不能用一个循环让二进制数继续右移直到全部提取出来,求高手解答.
class OperateDemo
{
static int num = 700;
public static void main(String[] args)
{
int n1 = num & 15;
if (n1>9)
System.out.println((char)(n1-10+'A'));
else
System.out.println(n1);
int temp = num >>> 4;
int n2 = temp & 15;
if (n2>9)
System.out.println((char)(n2-10+'A'));
else
System.out.println(n2);
}
} 作者: 李培根 时间: 2013-1-4 21:01
可以定义循环,当num不等于0的时候就继续。作者: 蔡少凯 时间: 2013-1-4 22:03
这是我对上面代码改写了一下 在java中 int类型为4个字节32位 而每4位表示一个十六进制的话 只需移动8次 可以在使用for循环 在执行语句中进行判断左移4位之后是否为0 为0就跳出循环
以下是我写的代码 其实毕老师在后面有讲到过更简便的方法
public class Demo1 {
static int num = 700;
public static void main(String[] args)
{
for(int i = 0;i<8;i++){
int n = num & 15;
if(n == 0)
break;
else{
if(n>9)
System.out.println((char)(n-10+'A'));
else
System.out.println(n);
}
num = num >>> 4;
}