使用算术右移实现将一个十进制数以二进制的形式输出
使用算术右移实现将一个十进制数以二进制的形式输出
主要思路:
规律总结:
所以,一个数算术右移n位后,按位与1得到的结果的十进制数即相当于该数的二进制形式中的第n+1位的数。
也即 一个数的二进制形式中的第n位,算术右移n-1位,按位与1,得到的结果的十进制数相当于就是二进制中的第n位的数。
那么,如果将一个数的二进制形式中的每一位:32… …1位,依次右移31… …0位,得到这每一个数依次输出,由这32个十进制的0或1即可拼成该数的二进制的形式。
实现代码如下:
package FuXi;
import java.util.Scanner;
public class YiWeiTest {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int num=in.nextInt();
for(int i=31,j=0;i>=0;i--) {
System.out.print((num >> i) & 1);
j++;
if(j%8==0 && i>0) System.out.print(',');
}
}
}
测试结果如下: