當前位置:首頁 » 編程語言 » java十進制二進制

java十進制二進制

發布時間: 2025-02-16 20:46:19

㈠ 用java寫一個 十進制轉為二進制的程序

將十進制轉換成二進制的演算法如下:
1.給定一個數;
2.根據十進制轉換二進制的思想:把這個數除以2若為單數則為1,為偶數則為0,直到最後一個數為1為止。所以我們要做的就是用你給定的這個數除以2,如果結果為奇數則r=1,否則r=0;如此循環下去,直到這個數〉=1。
3.然後把r的值送到一個數組裡面。最後把這個數組裡面的內容從後面列印出來就可以了。

import java.util.Scanner;

public class Hi {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入一個十進制需要轉換為二進制的正整數");
int n=sc.nextInt();
int r;
int i=0;
int[] a=new int[20];
do{
if(n%2==1)
r=1;
else
r=0;
a[i]=r;
n/=2;
i++;
}while(n>0);

System.out.println("十進制轉換為二進制後:");
for(int j=i-1;j>=0;j--){
System.out.print(a[j]);
}
}
}

㈡ java十進制數轉換成二進制,8進制以及16進制二進制轉十進制

Java程序:

publicclassMain{
publicstaticvoidmain(String[]args){
intnum=1234;
System.out.println("十進制:"+num);
System.out.println("二進制:"+Integer.toBinaryString(num));
System.out.println("八進制:"+Integer.toOctalString(num));
System.out.println("十六進制:"+Integer.toHexString(num));
System.out.println();

Stringstr="10011010010";
System.out.printf("二進制:%s 十進制:%d ",str,Integer.parseInt(str,2));
str="2322";
System.out.printf("八進制:%s 十進制:%d ",str,Integer.parseInt(str,8));
str="4D2";
System.out.printf("十六進制:%s 十進制:%d ",str,Integer.parseInt(str,16));
}
}


運行測試:

十進制:1234
二進制:10011010010
八進制:2322
十六進制:4d2

二進制:10011010010 十進制:1234
八進制:2322 十進制:1234
十六進制:4D2 十進制:1234

㈢ java 十進制轉二進制!

十進制數轉二進制數的演算法如下:
1. 十進制整數轉換為二進制整數

十進制整數轉換為二進制整數採用"除2取余,逆序排列"法。具體做法是:用2去除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余
數,如此進行,直到商為零時為止,然後把先得到的余數作為二進制數的低位有效位,後得到的余數作為二進制數的高位有效位,依次排列起來。
2.十進制小數轉換為二進制小數

十進制小數轉換成二進制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又
得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。然後把取出的整數部分按順序排列起來,先取的整數作為
二進制小數的高位有效位,後取的整數作為低位有效位。

下面就給出根據十進制數轉二進制數的演算法所寫的一段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();
}
}
例如將十進制數1234.5轉成二進制數為:0100 1101 0010.1000

熱點內容
怎麼看漢蘭達什麼配置 發布:2025-03-05 00:08:29 瀏覽:282
伺服器裝系統如何載入硬碟驅動 發布:2025-03-04 23:59:50 瀏覽:151
vf編程語言 發布:2025-03-04 23:54:17 瀏覽:179
新建文件夾磁力鏈接 發布:2025-03-04 23:49:56 瀏覽:467
如何改成qq舊密碼 發布:2025-03-04 23:49:08 瀏覽:707
伺服器ip波動 發布:2025-03-04 23:39:12 瀏覽:878
ppt設計c語言 發布:2025-03-04 23:32:41 瀏覽:773
我的世界電腦版怎麼玩神奇寶貝伺服器 發布:2025-03-04 23:32:37 瀏覽:120
sqlwithas排序 發布:2025-03-04 23:30:21 瀏覽:837
22款軒逸頂配都有哪些配置 發布:2025-03-04 23:24:26 瀏覽:536