[英]Coverting a decimal to binary using for loops?
我正在嘗試編寫一個將十進制轉換為二進制並將十進制轉換為八進制的程序。 我可以從十進制轉換為二進制,但是不能從十進制轉換為八進制。
import java.util.*;
public class RadixConversion
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number: ");
int number = scan.nextInt();
System.out.println("Convert to base: ");
String letter = scan.next();
if (letter.equals("b")||letter.equals("B"))
{
int remainder = 0;
for (int i = 1; number > 0; i++)
{
number /= 2;
remainder = number % 2;
System.out.print(remainder);
}
}
else if (letter.equals ("o") || letter.equals ("O"))
{
int remainder = 0;
for (int i = 1; number >0 ; i++)
{
number /= 8;
remainder = number % 8;
System.out.print(remainder);
}
}
}
}
這是我學習的方式有點復雜。 您必須找到適合該數字的8的最大冪,查看該數字有多少次,然后以8的下一個最低冪重復該過程。隨行打印每個數字。
看上去都沒有人產生正確的值,而0和1不會那么明顯。 您要刪除第一個數字並以相反的順序打印數字(一個人的數字首先打印)
int remainder = 0;
String result = "";
for (int i = 1; number >0 ; i++)
{
remainder = number % 8;
result = remainder + result; // remainder first puts the digits in the right order
number /= 8;
}
System.out.print(result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.