導航:首頁 > 源碼編譯 > java二進制轉十進制演算法

java二進制轉十進制演算法

發布時間:2022-04-23 01:07:06

java二進制轉十進制

(4)2^7-1-2^(5-1)
(6)2^32-1-2^3-2^1-1
(7)2^32-1-2^7-2^1
思路:
當從右往左數為第n位時,該位置的表示2^(n-1);
比如1011左數第一位的1表示8=2^(4-1)
當從右往左數的前n位全為1時,該數表示2^n-1;
比如1111=15=2^4-1
所以當首位是1,且1明顯比0多時,採用減法會簡單很多
第七題就是全為1時減去右數第八位和第二位的1後所得的結果
希望我的回答對你有用。

㈡ java怎麼把二進制轉換為十進制

Java有兩種方法可以將二進制數轉換為十進制數:
1)使用Integer類的Integer.parseInt()方法。
2)自己編寫轉換邏輯。

㈢ 在JAVA中怎麼把二進制轉換成十進制

String BIN2DEC(String bin){
BigInteger bi = new BigInteger(getString(bin), 2);//轉換為BigInteger類型
return bi.toString(10);//轉換為10進制結果
}

㈣ 求java編程 二進制十進制互相轉化

java中有現在的api

10進制轉二進制

Integer.toBinaryString(int i);

㈤ JAVA編程二進制怎樣轉換成十進制

import java.math.BigDecimal;

public class Test {

public static void main(String[] args) {
Test t = new Test();
double d = 8;
String s = t.decimal2BinaryStr(d);
System.out.println("十進制數"+d+"轉成二進制數為:"+s);
}

/**
* 十進制數轉二進制數
* @param d 十進制數
* @return 十進制數轉換成二進制的字元串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}

/**
* 十進制整數部分轉二進制數
* @param d 十進制數
* @return 十進制整數部分轉換成二進制的字元串
*/
public String decimal2BinaryStr_Inte(double d){
// return Integer.toBinaryString((int)d);
/*
* 本來利用上面的Integer.toBinaryString(int)就可以得到整數部分的二進制結果,
* 但為了展示十進制轉二進制的演算法,現選擇以下程序來進行轉換
*/
String result = "";
long inte = (long)d;
int index = 0;
while(true){
result += inte%2;
inte = inte/2;
index++;
if(index%4 == 0){
result+=" ";
}
if(inte==0){
while(index%4!=0){
result+="0";
index++;
}
break;
}
}
char[] c = result.toCharArray();
char[] cc = new char[c.length];
for(int i=c.length; i>0; i--){
cc[cc.length-i] = c[i-1];
}
return new String(cc);
}

/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d){
return decimal2BinaryStr_Deci(d, 0);
}

/**
* 十進制小數部分轉二進制
* @param d 十進制數
* @param scale 小數部分精確的位數
* @return 十進制小數部分轉換成二進制小數的字元串
*/
public String decimal2BinaryStr_Deci(double d, int scale){
double deci = sub(d,(long)d);
if(deci==0){
return "";
}
//為了防止程序因所轉換的數據轉換後的結果是一個無限循環的二進制小數,因此給其一個默認的精確度
if(scale==0){
scale = (String.valueOf(deci).length()-2)*4;
}
int index = 0;
StringBuilder inteStr = new StringBuilder();
double tempD = 0.d;
while(true){
if(deci==0 || index==scale){
while(index%4!=0){
inteStr.append("0");
index++;
}
break;
}
if(index==0){
inteStr.append(".");
}
tempD = deci*2;
inteStr.append((int)tempD);
deci = sub(tempD ,(int)tempD);
index++;
if(index%4 == 0){
inteStr.append(" ");
}
}
return inteStr.toString();
}

/**
* 提供精確的減法運算。
* @param v1 被減數
* @param v2 減數
* @return 兩個參數的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}

㈥ java如何以按鈕使輸入的二進制轉化為十進制

使用Integer.parseInt(Strings,intradix)。比如要將二進制數1000轉換為十進制數.inti=Integer.parseInt("1000",2);System.out.println(i);輸出結果為:8。

㈦ 編寫將任意二進制數轉換為十進制數的java程序

java有現成的
二進制轉十進制
Integer.valueOf("0101",2).toString()

另外還有
十進制轉成十六進制:
Integer.toHexString(int i)
十進制轉成八進制
Integer.toOctalString(int i)
十進制轉成二進制
Integer.toBinaryString(int i)
十六進制轉成十進制
Integer.valueOf("FFFF",16).toString()
八進制轉成十進制
Integer.valueOf("876",8).toString()

㈧ 用JAVA把二進制數轉換成十進制數。

二進制轉十進制

Integer.valueOf("0101",2).toString()

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("輸入一個二進制數: ");

String a = sc.nextLine();

int d = Integer.parseInt(a, 2); // 2進制

int o = Integer.parseInt(a, 8); // 8進制

System.out.println("二進制轉為十進制: " + d);

System.out.println("八進制轉為十進制: " + o);

計算機內部使用二進製表示數

二進制與十進制的轉換是比較復雜的。比如我們要讓計算機計算50+50=?,那麼首先要把十進制的50轉換成二進制的「50」——110010,這個過程要做多次除法,而計算機對於除法的計算是最慢的。把十進制的50轉換成二進制的110010還不算完,計算出結果1100100之後還要再轉換成十進制數100,這是一個做乘法的過程,對計算機來說雖然比除法簡單,但計算速度也不快。

以上內容參考:網路-十進制

㈨ java中有將二進制轉換成十進制的方法嗎

:java進制轉換 java中進行二進制,八進制,十六進制,十進制間進行相互轉換 十進制轉成十六進制: Integer.toHexString(int i) 十進制轉成八進制 Integer.toOctalString(int i) 十進制轉成二進制 Integer.toBinaryString(int i) 十六進制轉成十進

㈩ java二進制轉化為十進制 要純演算法的

二進制的1101轉化成十進制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
轉化成十進制要從右到左用二進制的每個數去乘以2的相應次方
不過次方要從0開始

閱讀全文

與java二進制轉十進制演算法相關的資料

熱點內容
c預編譯干什麼 瀏覽:22
hp網路共享文件夾 瀏覽:363
程序員如何不被廢 瀏覽:803
二進制流轉pdf 瀏覽:915
php判斷爬蟲 瀏覽:570
960除24除4簡便演算法 瀏覽:786
關於解壓英語翻譯 瀏覽:565
python控制鍵盤右鍵 瀏覽:920
php沒有libmysqldll 瀏覽:828
時政新聞app哪個好 瀏覽:906
手機已加密怎麼辦 瀏覽:201
安卓手機截屏怎麼傳到蘋果 瀏覽:527
京管家app哪裡下載 瀏覽:33
文件夾橫向排列的豎向排列 瀏覽:453
51單片機驅動攝像頭模塊 瀏覽:689
政府文件加密沒法轉換 瀏覽:373
android判斷棧頂 瀏覽:331
憑證軟體源碼 瀏覽:860
androidwebview滾動事件 瀏覽:11
如何將電腦上的圖片壓縮成文件包 瀏覽:899