十進(jìn)制轉(zhuǎn)String, 和String轉(zhuǎn)十進(jìn)制的參考方法如下:
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),殷都企業(yè)網(wǎng)站建設(shè),殷都品牌網(wǎng)站建設(shè),網(wǎng)站定制,殷都網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,殷都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
public?class?Test?{
public?static?void?main(String[]?args)?{
int?a?=?123;
//十進(jìn)制轉(zhuǎn)字符串
String?s1?=?a?+?"";//方法1:字符串拼接得到字符串
String?s2?=?String.valueOf(a);//方法2:使用String.valueOf方法轉(zhuǎn)換得到字符串
//字符串轉(zhuǎn)十進(jìn)制
int?x?=?Integer.valueOf(s1);//方法1
int?y?=?Integer.parseInt(s2);//方法2
int?z?=?new?Integer(s1);//方法3
}
}
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("十進(jìn)制數(shù)"+d+"轉(zhuǎn)成二進(jìn)制數(shù)為:"+s);
}
/**
* 十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)
* @param d 十進(jìn)制數(shù)
* @return 十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制的字符串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}
/**
* 十進(jìn)制整數(shù)部分轉(zhuǎn)二進(jìn)制數(shù)
* @param d 十進(jìn)制數(shù)
* @return 十進(jìn)制整數(shù)部分轉(zhuǎn)換成二進(jìn)制的字符串
*/
public String decimal2BinaryStr_Inte(double d){
// ? ? ?return Integer.toBinaryString((int)d);
/*
一、java的簡(jiǎn)介
java是由Sun Microsystems公司推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言(以下簡(jiǎn)稱Java語(yǔ)言)和Java平臺(tái)的總稱。
Java由James Gosling和同事們共同研發(fā),并在1995年正式推出。Java最初被稱為Oak,是1991年為消費(fèi)類電子產(chǎn)品的嵌入式芯片而設(shè)計(jì)的。
Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術(shù)也不斷更新。Java自面世后就非常流行,發(fā)展迅速,對(duì)C++語(yǔ)言形成有力沖擊。
在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。2010年Oracle公司收購(gòu)Sun Microsystems。
import?java.util.Stack;
/**
*?author:?liu?jun?bao
*?date:?2020/2/28
*?desc:
*/
public?class?Test?{
public?static?void?main(String[]?args)?{
Integer?a?=?300;
Integer?b?=?8;
BinaryConversion(a,?b);
}
/**
*
*?@param?a?要轉(zhuǎn)化的十進(jìn)制數(shù)
*?@param?b?要轉(zhuǎn)化的進(jìn)制
*??????????該方法輸出轉(zhuǎn)化結(jié)果
*/
private?static?void?BinaryConversion(Integer?a,?Integer?b)?{
Stack?stack?=?new?Stack();
while?(a?!=?0){
stack.push(a%b);
a=a/b;
}
while?(!stack.empty()){
System.out.print(stack.pop());
}
}
}
下面是根據(jù)十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)的算法所寫的一段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("十進(jìn)制數(shù)"+d+"轉(zhuǎn)成二進(jìn)制數(shù)為:"+s);
}
/**
* 十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)
* @param d 十進(jìn)制數(shù)
* @return 十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制的字符串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}
/**
* 十進(jìn)制整數(shù)部分轉(zhuǎn)二進(jìn)制數(shù)
* @param d 十進(jìn)制數(shù)
* @return 十進(jìn)制整數(shù)部分轉(zhuǎn)換成二進(jìn)制的字符串
*/
public String decimal2BinaryStr_Inte(double d){
// ? ? ?return Integer.toBinaryString((int)d);
/*
* 本來(lái)利用上面的Integer.toBinaryString(int)就可以得到整數(shù)部分的二進(jìn)制結(jié)果,
* 但為了展示十進(jìn)制轉(zhuǎn)二進(jìn)制的算法,現(xiàn)選擇以下程序來(lái)進(jìn)行轉(zhuǎn)換
*/
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);
}
/**
* 十進(jìn)制小數(shù)部分轉(zhuǎn)二進(jìn)制
* @param d 十進(jìn)制數(shù)
* @return 十進(jìn)制小數(shù)部分轉(zhuǎn)換成二進(jìn)制小數(shù)的字符串
*/
public String decimal2BinaryStr_Deci(double d){
return decimal2BinaryStr_Deci(d, 0);
}
/**
* 十進(jìn)制小數(shù)部分轉(zhuǎn)二進(jìn)制
* @param d 十進(jìn)制數(shù)
* @param scale 小數(shù)部分精確的位數(shù)
* @return 十進(jìn)制小數(shù)部分轉(zhuǎn)換成二進(jìn)制小數(shù)的字符串
*/
public String decimal2BinaryStr_Deci(double d, int scale){
double deci = sub(d,(long)d);
if(deci==0){
return "";
}
//為了防止程序因所轉(zhuǎn)換的數(shù)據(jù)轉(zhuǎn)換后的結(jié)果是一個(gè)無(wú)限循環(huán)的二進(jìn)制小數(shù),因此給其一個(gè)默認(rèn)的精確度
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();
}
/**
* 提供精確的減法運(yùn)算。
* @param v1 被減數(shù)
* @param v2 減數(shù)
* @return 兩個(gè)參數(shù)的差
*/
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();
}
}
例如將十進(jìn)制數(shù)1234.5轉(zhuǎn)成二進(jìn)制數(shù)為:0100 1101 0010.1000