![](/img/trans.png)
[英]Program to convert decimal to binary binary to decimal, decimal to hexadecimal and hexadecimal to decimal in java
[英]Creating a java program to convert decimal to binary?
我正在開發一個可以顯示三種選擇的程序。 三者是:
如果用戶在選擇中寫入“退出”,則系統取數字並說“再見”。
截至目前,這就是我所擁有的。
import java.util.Scanner;
public class binary {
public String toBinary(int n) {
if (n == 0) {
return "0";
}
String binary = "";
while (n > 0) {
int rem = n % 2;
binary = rem + binary;
n = n / 2;
}
return binary;
}
public static int binaryTodecimal(int i) {
int n = 0;
for (int pow = 1; i > 0; pow *= 2, i /= 10)
n += pow * (i % 10);
return n;
}
public static void main(String[] args) {
int answer2 = 0;
String answer;
final int info = 10;
for (int i = 0; i < info; i++) {
Scanner kb = new Scanner(System.in);
System.out.println("==================================");
System.out.print("Enter your choice: ");
answer = kb.next();
if (answer.equalsIgnoreCase("3"))
System.exit(0);
System.out.print("Enter a number: ");
answer2 = kb.nextInt();
binary decimalToBinary = new binary();
String binary = decimalToBinary.toBinary(answer2);
if (answer.equals("1"))
System.out.println("The 8-bit binary representation is: " + binary);
binary bd = new binary();
int n = bd.binaryTodecimal(answer2);
if (answer.equals("2"))
System.out.println("The decimal representation is: " + answer2);
我遇到的問題是這個。
在嘗試將answers2中的數字轉換為二進制或十進制時,我無法弄清楚如何實際拆分answer2以使其工作。 我想過做一個循環,但不知道我還能做些什么。 你能不能告訴我我需要做什么? 我是Java的新手,仍在努力學習繩索。
在將十進制轉換為二進制時,它打印出6位或另一位,我希望它特別是8位。 我怎樣才能解決這個問題? 例:
Enter your choice: 1 Enter a number: 16 The 8-bit binary representation is: 10000
您可以使用開關案例來完成要執行的操作列表。 交換機根據選擇執行操作,您也可以設計為執行多個操作。 為了更好地理解,請點擊此鏈接
我沒有改變你的轉換邏輯,而是改變決策過程並用switch替換它
import java.util.Scanner;
public class BinaryToDecimal {
public String toBinary(int n) {
if (n == 0) {
return "0";
}
String binary = "";
while (n > 0) {
int rem = n % 2;
binary = rem + binary;
n = n / 2;
}
return binary;
}
public int binaryTodecimal(int i) {
int n = 0;
for (int pow = 1; i > 0; pow *= 2, i /= 10)
n += pow * (i % 10);
return n;
}
public static void main(String[] args) {
int answer2 = 0;
String answer;
final int info = 10;
for (int i = 0; i < info; i++) {
Scanner kb = new Scanner(System.in);
System.out.println("==================================");
System.out.print("Enter your choice: ");
answer = kb.next();
switch (answer) {
case "1": // if the answer is one do this action
System.out.print("Enter a number: ");
answer2 = kb.nextInt();
BinaryToDecimal decimalToBinary = new BinaryToDecimal();
String binary = decimalToBinary.toBinary(answer2);
System.out.println("The 8-bit binary representation is: " + binary);
break; // leave the switch
case "2": // if answer is 2 do the following actions
System.out.print("Enter a number: ");
answer2 = kb.nextInt();
BinaryToDecimal bd = new BinaryToDecimal();
int n = bd.binaryTodecimal(answer2);
System.out.println("The decimal representation is: " + n);
break; // leave the switch case
case "3": // when the answer is 3
System.out.println("Goodbye");
System.exit(0);
// break; you need not use here because you have an exit call
}
}
}
}
產量
==================================
Enter your choice: 1
Enter a number: 25
The 8-bit binary representation is: 11001
==================================
Enter your choice: 2
Enter a number: 11001
The decimal representation is: 25
==================================
Enter your choice: 2
Enter a number: 1000000
The decimal representation is: 64
==================================
Enter your choice: 3
Goodbye
另外:為什么使用static for binaryToDecimal方法而不是二進制。 我已經使方法對象級別。 因為你正在為一個選擇創建一個對象,所以它會更多。 但是,為每個選擇創建一個對象不需要你可以使用多次創建的同一個對象,因為你沒有使用任何成員變量來完成你的工作,請參閱下面的代碼
BinaryToDecimal decimalToBinary = new BinaryToDecimal();
Scanner kb = new Scanner(System.in);
System.out.println("==================================");
System.out.print("Enter your choice: ");
answer = kb.next();
switch (answer) {
case "1":
System.out.print("Enter a number: ");
answer2 = kb.nextInt();
String binary = decimalToBinary.toBinary(answer2);
System.out.println("The 8-bit binary representation is: " + binary);
break;
case "2":
System.out.print("Enter a number: ");
answer2 = kb.nextInt();
int n = decimalToBinary.binaryTodecimal(answer2);
System.out.println("The decimal representation is: " + n);
break;
case "3":
System.out.println("Goodbye");
System.exit(0);
break;
}
1)在嘗試將answers2中的數字轉換為二進制或十進制時,我無法弄清楚如何實際拆分answer2以使其工作。 我想過做一個循環,但不知道我還能做些什么。 你能不能告訴我我需要做什么? 我是Java的新手,仍在努力學習繩索。
你是什么意思“如何實際分開答案2”?
從二進制字符串轉換為十進制我建議你
int decimal = Integer.parseInt(binaryString, 2)
在另一邊你可以使用
String binary = Integer.toBinaryString(decimalNumber);
2)在將十進制轉換為二進制時,它打印出6位,我希望它特別是8位。 我怎樣才能解決這個問題?
如果你想要8位,你可以在二進制字符串的開頭添加足夠的填充0:
String binaryString = Integer.toBinaryString(10);
for(int i = 8 - binaryString.length(); i > 0; i--)
binaryString = "0" + binaryString;
當然這不是最有效的方式,但我認為這很好
這是我如何做這個程序。它完全基於遞歸
import java.util.*;
class Dec_To_Bin{
public static void main(String args[]){
Scanner in=new Scanner(System.in);
System.out.print("Enter the decimal number:>");
int n=in.nextInt();
Dec_To_Bin ob=new Dec_To_Bin();
ob.binconv(n,0);
}
public void binconv(int n,int c){
if(c>7){
return ;
}
else{
binconv(n/2,c+1);
System.out.print(n%2);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.