public static void main(String[] args) {
/*
* 1:10进制转换成2进制 除2取模,只要商不等于0就一直循环 2新建一个数组,长度为32位(int类型数字4个字节),反向添加数据到数组中
* 2 循环遍历数组,记录第一个不是0的元素,重新创建一个数组,长度为这个位置到数组结尾 3 循环遍历新数组添加
*/
System.out.println("please input the number you want to transform");
Scanner sc=new Scanner(System.in);
int number = sc.nextInt();
int[] result = TenToTwo(number);
MyArrayHelp.print(result);
}
public static int[] TenToTwo(int number) {
int m;
int[] arr = new int[32];
int x = 0;// 记录余数的个数
while (number != 0) {
m = number % 2;
number = number / 2;// 设置下一轮的除数为本轮的商
arr[arr.length - 1 - x] = m;// 余数存储,从最低位开始存储
x++;// 余数的个数+1
}
int key = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
key = i;
break;// 找到第一个以后就中断循环退出
}
}
int[] result = new int[arr.length - key];//key位置的长度是key+1
for (int i = 0; i < result.length; i++) {
result[i] = arr[key + i];
}
return result;
}