我創建一個代碼,可以讓你的二進制數轉換爲十進制數,反之亦然。我已經創建了一個將十進制轉換爲二進制的代碼,但不能解決如何將二進制實現爲十進制方面的問題。二進制到十進制的Java轉換
我爲十進制到二進制代碼如下:
import java.util.*;
public class decimalToBinaryTest
{
public static void main (String [] args)
{
int n;
Scanner in = new Scanner(System.in);
System.out.println("Enter a positive interger");
n=in.nextInt();
if(n < 0)
{
System.out.println("Not a positive interger");
}
else
{
System.out.print("Convert to binary is: ");
binaryform(n);
}
}
private static Object binaryform(int number)
{
int remainder;
if(number <= 1)
{
System.out.print(number);
return " ";
}
remainder= number % 2;
binaryform(number >> 1);
System.out.print(remainder);
{
return " ";
}
}
}
二進制如何十進制代碼工作的解釋會有所幫助。
我已經嘗試了最不重要的digit*1
然後第*1*2
,然後*1*2*2
,但不能得到它的工作方法。
謝謝@korhner我用你的電話號碼系統的陣列和if語句。
這是我的工作代碼:
import java.util.*;
public class binaryToDecimalConvertor
{
public static void main (String [] args)
{
int [] positionNumsArr= {1,2,4,8,16,32,64,128};
int[] numberSplit = new int [8];
Scanner scanNum = new Scanner(System.in);
int count1=0;
int decimalValue=0;
System.out.println("Please enter a positive binary number.(Only 1s and 0s)");
int number = scanNum.nextInt();
while (number > 0)
{
numberSplit[count1]=(number % 10);
if(numberSplit[count1]!=1 && numberSplit[count1] !=0)
{
System.out.println("Was not made of only \"1\" or \"0\" The program will now restart");
main(null);
}
count1++;
number = number/10;
}
for(int count2 = 0;count2<8;count2++)
{
if(numberSplit[count2]==1)
{
decimalValue=decimalValue+positionNumsArr[count2];
}
}
System.out.print(decimalValue);
}
}
+1 。問題看起來像一個家庭作業/練習,所以在我看來這應該是被接受的答案。 –