程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 將正小數轉化為2-9進制小數的實現方法

將正小數轉化為2-9進制小數的實現方法

編輯:C語言基礎知識

將任意十進制正小數分別轉換成2,3,4,5,6,7,8,9進制正小數,小數點後保留8位,並輸出。例如:若十進制小數為0.795,則輸出:

 十進制正小數 0.795000 轉換成 2 進制數為: 0.11001011
 十進制正小數 0.795000 轉換成 3 進制數為: 0.21011011
 十進制正小數 0.795000 轉換成 4 進制數為: 0.30232011
 十進制正小數 0.795000 轉換成 5 進制數為: 0.34414141
 十進制正小數 0.795000 轉換成 6 進制數為: 0.44341530
 十進制正小數 0.795000 轉換成 7 進制數為: 0.53645364
 十進制正小數 0.795000 轉換成 8 進制數為: 0.62702436
 十進制正小數 0.795000 轉換成 9 進制數為: 0.71348853
以下代碼提供了這個功能。其中,dTestNo表示待轉的十進制小數。iBase表示進制數。
代碼如下:

#include <stdio.h>

void fun(double dTestNo, int iBase)
{
 int iT[8];  //轉化後的小數保留8位數
 int iNo;

 printf("十進制正小數 %f 轉換成 %d 進制數為: ",dTestNo, iBase);

 for(iNo=0;iNo<8;iNo++)  //分別得出每位數字  小數部分
 {
  dTestNo *= iBase;
  iT[iNo] = (int)dTestNo;  //得出整數部分存放起來
  if(dTestNo>=1) dTestNo -= iT[iNo];  //減去整數部分
 }

 printf("0.");
 for(iNo=0; iNo<8; iNo++) printf("%d", iT[iNo]);
 printf("\n");
}

void main ( )

 double dTestNo= 0.795;
 int iBase;

 for(iBase=2;iBase<=9;iBase++)
  fun(dTestNo,iBase);
 printf("\n");
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved