下面是根據十進制數轉二進制數的算法所寫的一段Java程序示例代碼:
創新互聯公司主要從事網站制作、成都網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務沈河,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792
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; i0; 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
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);
/*
一、java的簡介
java是由Sun Microsystems公司推出的Java面向對象程序設計語言(以下簡稱Java語言)和Java平臺的總稱。
Java由James Gosling和同事們共同研發,并在1995年正式推出。Java最初被稱為Oak,是1991年為消費類電子產品的嵌入式芯片而設計的。
Java被廣泛接受并推動了Web的迅速發展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術也不斷更新。Java自面世后就非常流行,發展迅速,對C++語言形成有力沖擊。
在全球云計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。2010年Oracle公司收購Sun Microsystems。
java中二進制的表示:
1、Java中定義兩個數,然后分別打印出它們的二進制表示(例如7和-7):
System.out.println("Java二進制7:?"+Integer.toBinaryString(7));
System.out.println("Java二進制-7:?"+Integer.toBinaryString(-7));
輸出:
Java二進制7: 111
Java二進制-7: 11111111111111111111111111111001
7的二進制就是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是 111
(2)Java中對于不滿32位的int二進制自動補齊,所以變成了 (29個0)111
(3)然后取反 ?(29個1)000
(4)然后加1 (29個1)001
擴展資料:
c語言中二進制的轉換:
用函數轉換itoa(值,數組名,進制)
#includestdio.h
#includestdlib.h
void?main()
{
char str[8];
int?i=8;
itoa(i,str,2);
printf("%s",str);
}
參考資料:
java二進制——百度百科
稍微修改了一下:
import java.math.BigInteger;
import java.lang.Math;
public class HardWork {
public static void main(String args[]) {
double L;
double m;
L=Math.log(31)*10000;
m= 15.5*(Math.pow(2,L)-1);
String a =String.valueOf((int)L);//輸入數值
BigInteger src = new BigInteger(a);
System.out.println(src.toString(2));
System.out.println(L);
System.out.println(m);
}
}
運行測試:
1000011000100011
34339.872044851465
Infinity
由java編譯器把源文件編譯成虛擬機可以識別的二進制代碼稱為字節碼。
而字節碼是由java解釋器去解釋執行的。
當前標題:java2進制代碼的簡單介紹
當前路徑:http://vcdvsql.cn/article30/hsdcso.html
成都網站建設公司_創新互聯,為您提供網站策劃、標簽優化、網站設計、搜索引擎優化、微信公眾號、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯