정 소 수 를 2-9 진수 로 바 꾸 는 실현 방법

임의의 십 진법 의 정 소 수 를 각각 2,3,4,5,6,7,8,9 진법 의 정 소수 로 바 꾸 고 소수점 뒤에 8 자 리 를 유지 하 며 출력 한다.예 를 들 어 10 진 소수 가 0.795 이면 출력:
 10 진법 의 정수 0.795000 을 2 진법 으로 바 꾸 면 0.11001011 이다. 10 진법 의 정수 0.795000 을 3 진법 으로 바 꾸 면 0.21011011011 이다. 10 진법 의 정수 0.795000 을 4 진법 으로 바 꾸 었 다.0.30232011 이다. 10 진법 의 정수 0.795000 을 5 진수 로 바 꾸 면 0.344141 이다. 10 진법 의 정수 0.795000 을 6 진수 로 변환 하 는 것 은 0.44341530 이다. 10 진 정수 0.795000 에서 7 진 으로 전환:0.53645364 10 진법 의 정수 0.795000 을 8 진수 로 변환 하 는 것 은 0.62702436 이다. 10 진 정수 0.795000 을 9 진수 로 바 꾸 었 습 니 다.0.71348853 이하 코드 는 이 기능 을 제공 합 니 다.그 중에서 dTestno 는 전환 을 기다 리 는 10 진법 소 수 를 나타 낸다.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("
");
}

void main ( )

 double dTestNo= 0.795;
 int iBase;

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

좋은 웹페이지 즐겨찾기