zoukankan      html  css  js  c++  java
  • n进制小数

    n进制小数

    将任意十进制正小数分别转换成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表示进制数

    源代码:

     1 #include<stdio.h>
     2 #include <string.h>
     3 
     4 void fun(double dTestNo, int iBase)
     5 {
     6     int iT[8] = {0};
     7     int iNo;
     8 
     9     printf("十进制小数%lf转换为%d进制小数:", dTestNo, iBase);
    10 
    11     for(iNo = 0; iNo < 8; iNo++)
    12     {
    13         dTestNo *= iBase;
    14         //printf("%.8lf ", dTestNo);
    15         iT[iNo] = (int)dTestNo;
    16         if(dTestNo - iT[iNo] >= 0)
    17             dTestNo -= iT[iNo];
    18     }
    19 
    20     printf("0.");
    21     for(iNo = 0; iNo < 8; iNo++)
    22         printf("%d", iT[iNo]);
    23     printf("\n");
    24 }
    25 
    26 int main()
    27 {
    28     double dTestNo;
    29 
    30     scanf("%lf", &dTestNo);
    31     if(dTestNo >= 1.0)         //确保输入的是小数
    32     {
    33         dTestNo -= (int)dTestNo;
    34     }
    35 
    36     for(int iBase = 2; iBase <= 9; iBase++)
    37         fun(dTestNo, iBase);
    38 
    39     return 0;
    40 }
  • 相关阅读:
    python中的特殊函数__call__
    python的内存机制
    tf.train.Saver()-tensorflow中模型的保存及读取
    修改过的bug
    JQuery的attr 与 val区别及使用
    多线程处理同一个List测试dome
    synchronized 使用总结
    oracle 自定义函数
    第一天写博客,分享下学习oracle存储过程的过程
    SqlServer
  • 原文地址:https://www.cnblogs.com/Dreamcaihao/p/3055235.html
Copyright © 2011-2022 走看看