[英]Java convert from decimal to 8-bit binary
我寫了簡單的 java 代碼來從十進制轉換為 8 位二進制:抱歉這個愚蠢的問題
1 int dec=1;
2 String result="";
3 String reverse = "";
4 while(dec!=0)
5 {
6 result+=dec%2;
7 dec=dec/2;
8 }
9 //8-Bit Binary
10 System.out.println("dec length is :"+result.length());
// int j=8-result.length(); // for(int i=0;i
11 for(int i=0;i<(8-result.length());i++)
12 {
13 result+=0;
14 System.out.println("*");
15 }
16 System.out.println("8-Bit before reverse:"+result);
17 for(int i = result.length() - 1; i >= 0; i--)
18 {
19 reverse = reverse + result.charAt(i);
20 }
21 System.out.println("8-bit representation:"+reverse);
結果是:dec 長度為:1 * * * * 反轉前的 8 位:10000 8 位表示:00001
但是當我刪除第 13 行(result+=0;)時,編譯器會打印 7 個星號(*),這是什么原因? 結果的長度每次都會更新
這是因為您的for循環沒用:
for(int i=0;i<(8-result.length());i++)
以及其中的動作:
result+=0;
增加結果的長度會使8-result.length()的結果較小(8-2 = 6,8-3 = 5 ...),因此循環執行的次數更少。
因為 result
是String
。 向String
添加一個int
零,像這樣
result+=0;
調用與以下行為相同的行為
result+=String.valueOf(0);
//Decimal to Binary Conversion
int dec=1;
String result= "00000000";
int i=result.length()-1;
while(dec!=0)
{
char a[]=result.toCharArray();
a[i--]= String.valueOf(dec%2).charAt(0);
result=new String(a);
dec=dec/2;
}
System.out.println(result);
您也可以嘗試以下簡單代碼:
void intToBinary(int a) {
String temp = Integer.toBinaryString(a);
while(temp.length() !=8){
temp = "0"+temp;
}
System.out.println(temp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.