可以使用二乘取整法。
創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
十進(jìn)制數(shù)乘以10,小數(shù)點(diǎn)右移一位,3205.435*10=32054.35。
同理,二進(jìn)制數(shù)乘以2,小數(shù)點(diǎn)右移一位,101101.1101*10=1011011.101(式子中都是二進(jìn)制數(shù))。
兩個(gè)小數(shù)相同,表示法不同,但各自乘以2后,結(jié)果的整數(shù)部分和小數(shù)部分是相同的,基于此,十進(jìn)制小數(shù)可用(小數(shù)部分)“2乘取整法”轉(zhuǎn)換為二進(jìn)制小數(shù)。
有限位數(shù)的十進(jìn)制小數(shù),轉(zhuǎn)換成的二進(jìn)制小數(shù)可能是無限位數(shù)的,這時(shí)可按要求的精度取有限位的結(jié)果即可,最后一位是其后面位“0舍1入”的結(jié)果。
C語言簡介:
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。
盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)的許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯。
十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)采用"乘2取整,順序排列"法。即小數(shù)部分連續(xù)的乘以R,保留每次相乘的整數(shù)部分。
具體做法是:用2乘十進(jìn)制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù) 部分,又得到一個(gè)積,再將積的整數(shù)部分取出,如此進(jìn)行,直到積中的小數(shù)部分為零,或者達(dá)到所要求的精度為止。將得到的整數(shù)部分按照得到的順序排流列即為小數(shù)部分。
然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進(jìn)制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。
擴(kuò)展資料:
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)的方法:
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用"除2取余,逆序排列"法。
具體做法是:用2去除十進(jìn)制整數(shù),可以得到一個(gè)商和余數(shù);再用2去除商,又會(huì)得到一個(gè)商和余數(shù),如此進(jìn)行,直到商為零時(shí)為止,然后把先得到的余數(shù)作為二進(jìn)制數(shù)的低位有效位,后得到的余數(shù)作為二進(jìn)制數(shù)的高位有效位,依次排列起來。
一般在程序里面寫成除二取余數(shù)的方法來得到。跟二進(jìn)制的數(shù)的取法手工算法一樣。
任意數(shù)除2以后,如果有小數(shù)點(diǎn),就在堆棧中寫進(jìn)一個(gè)1,沒有小數(shù)就寫0。然后除完以后,把堆棧的數(shù)倒取出來,就成了該數(shù)字的二進(jìn)制。
#include iostream.h
void divideData(const float number, int integer, float decimal); //分離出整數(shù)和小數(shù)部分.
void printBinaryForInteger(int integer); //打印整數(shù)部分的二進(jìn)制形式.
void printBinaryForDecimal(float decimal); //打印小數(shù)部分的二進(jìn)制形式.
int main()
{
float number;
int integer;
float decimal;
cout"Please input a decimal number for being converted: ";
cinnumber;
cout"\nThe binary number converted from your input "number" is: ";
divideData(number, integer, decimal);
printBinaryForInteger(integer);
if (integer==0) cout"0";
cout".";
printBinaryForDecimal(decimal);
coutendl;
return 1;
}
void divideData(const float number, int integer, float decimal)
{
integer = (int)number;
decimal = number - (float)integer;
}
void printBinaryForInteger(int integer)
{
int k,a=0;
int b[32];
while (integer!=0)
{
k=integer%2;
b[a++]=k;
integer=integer/2;
}
while (a0)
{
coutb[--a];
}
}
void printBinaryForDecimal(float decimal)
{
int i=0;
int count=0;
int a[8]={0};
while (count6) //小數(shù)部分取6位(也可用符號(hào)常量設(shè)置).
{
decimal*=2;
a[count++]=(int)decimal;
if (decimal=1.0)
decimal-=1.0;
}
while (i6)
{
couta[i++];
}
}
//用于C編譯器時(shí)略作修改;只考慮了輸入數(shù)為正數(shù).
新聞名稱:小數(shù)轉(zhuǎn)二進(jìn)制c語言函數(shù) c++小數(shù)轉(zhuǎn)二進(jìn)制
當(dāng)前路徑:http://jinyejixie.com/article40/dopscho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站改版、ChatGPT、品牌網(wǎng)站設(shè)計(jì)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)