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