一个将十进制数转化为二进制数,然后对二进制数进行处理,再转化为十进制数输出的经典进制转换问题。题目:传入一个int数,要求清除该数的低8位,高24位不变,将结果以十进制形式输出?


    下面来用代码体现:

   

public class Test{
	public static void main(String[] args){
		String s=out1(100000);
		int result=Integer.valueOf(s,2);
		System.out.println("最终得到的十进制结果为:"+result);
	}
	//传入一个int数,要求清除该数的低8位,高24位不变
	public static String out1(int num){
		String s1="";
		String s2="";
		for(int i=31; i>=8;i--){
			s1+=num>>i&1;
		}
		for(int i=7; i>=0;i--){
			s2+=num>>i&0;
		}
		return s1+s2;
	}
	
}


    
    代码解析:
            (1):先定义一个方法,传入我们要输入的int数值
            (2):在方法中定义两个空字符串s1,s2
            (3):对这个int数值的二进制高24位进行循环遍历处理
            (4):处理的内容是对这个int数值右移i位再与1进行与处理
                使得每一位的值都不发生改变然后就与s1进行字符串
                的拼接从而得到原来的高24位。
            (5):下面一个for循环是对低八位进行处理,是将int数值
                右移i位再与0进行与处理,从而使得无论如何后面八位
                的处理结果都位0,再与s2进行字符串的拼接。
            (6):将上面处理得到的两个字符串拼接起来就是一个完整的
                二进制值了,返回给上面的方法调用,用s接收。
            (7):通过Integer类的valueOf(s,当前的进制)方法将二进制值
                转化为十进制值,最后输出即可。

发布了42 篇原创文章 · 获赞 6 · 访问量 2981

猜你喜欢

转载自blog.csdn.net/qq_44666176/article/details/98077171
今日推荐