• 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 }
  • 相关阅读:
    HTTP协议
    安全测试-渗透性测试
    网络安全、Web安全、渗透测试之笔经面经总结(三)
    Struts2拦截器再认识
    struts2.5+框架使用通配符与动态方法
    struts.xml配置详解
    代理概述
    Mybatis Plugin(拦截器)的开发
    详解环境搭建SSM
    mybatis-databaseIdProvider多数据库支持
  • 原文地址:https://www.cnblogs.com/Dreamcaihao/p/3055235.html
Copyright © 2020-2023  润新知