十进制转二进制 java 程序_如何把一个十进制数转为二进制数的Java程序?
展開全部
十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制分2部分,整數(shù)和小數(shù)部分。
1、整數(shù)部分
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用62616964757a686964616fe59b9ee7ad9431333337616533"除2取余,逆序排列"法。具體做法是:用2整除十進(jìn)制整數(shù),可以得到一個(gè)商和余數(shù);再用2去除商,又會得到一個(gè)商和余數(shù),如此進(jìn)行,直到商為0時(shí)為止,然后把先得到的余數(shù)作為二進(jìn)制數(shù)的低位有效位,后得到的余數(shù)作為二進(jìn)制數(shù)的高位有效位,依次排列起來。
2、小數(shù)部分
十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)采用"乘2取整,順序排列"法。具體做法是:用2乘十進(jìn)制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又得到一個(gè)積,再將積的整數(shù)部分取出,如此進(jìn)行,直到積中的小數(shù)部分為零,此時(shí)0或1為二進(jìn)制的最后一位。或者達(dá)到所要求的精度為止。
示例:public?class?ErJinZhi{
public?String?trans(int?zheng){//轉(zhuǎn)整數(shù)部分
String?temp?=?"";
while(zheng!=0){//一直到整數(shù)部分為0
temp?=?(zheng%2)+temp;//余數(shù),并且拼接起來
zheng?=?zheng/2;//除2取整
}
return?temp;//余數(shù)拼起來后返回
}
public?String?trans(float?xiao){
if(xiao>1){//如果大于1,則有整數(shù)部分,出錯(cuò)了
return?"false";
}
String?temp?=?"";
int?weishu?=?10;????????//小數(shù)位數(shù),精度
for(int?i=0;i
xiao*=2;//乘以2
if(xiao>=1){//取整
temp+="1";
xiao?=?xiao-1;//去除整數(shù)后取小數(shù)
}else{
temp+="0";//取整數(shù)位
}
}
return?temp;//返回小數(shù)二進(jìn)制數(shù)
}
public?static?void?main(String[]?args){
System.out.println("Please?input:");
Scanner?sc?=?new?Scanner(System.in);
float?n?=?sc.nextFloat();//獲取一個(gè)輸入的十進(jìn)制數(shù)
int?zheng?=?(int)n;//取整數(shù)部分
float?xiao?=?n-zheng;//取小數(shù)部分
String?temp?=?new?ErJinZhi2().trans(zheng);//整數(shù)部分轉(zhuǎn)換成二進(jìn)制
String?temp2?=?new?ErJinZhi2().trans(xiao);//小數(shù)部分轉(zhuǎn)換成二進(jìn)制
System.out.println(temp+"."+temp2);//輸出二進(jìn)制小數(shù)
}
}
總結(jié)
以上是生活随笔為你收集整理的十进制转二进制 java 程序_如何把一个十进制数转为二进制数的Java程序?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。