首页 > 其他分享 >10.数制转化

10.数制转化

时间:2023-04-23 23:44:07浏览次数:36  
标签:10 数制 进制 int 整数 转化 num 转换 十进制

 问题分析:

 十进制整数转换为R进制整数的基本方法是:“除R取余”。具体做法为:对于十进制数整数,用R连续除要转换的十进制整数及各次所得之商,直除到商等于0时为止,则各次所得之余数即为所求R进制整数由低位到高位的值。这个过程可以写成一个简单的循环。

        一般而言,对于任意的R进制数 An-1An-2…A1A0可以表示为以下和式:

         An-1×Rn-1 +…+A1×R1+A0×R0 (其中R为基数)

        这个和式也称为“按权展开式”。

        R进制数转换为十进制数的基本方法是将R进制数的各位按权展开相加即可。

        本例的思路是:将输入的n进制整数按权值展开后转换为十进制整数,再将所得的十进制整数采用“除m取余”转换为m进制整数即可。

代码:

#include <stdio.h>

int main()

{

    char table[17]="0123456789ABCDEF";

    int n,m;

    char s[33];

    scanf("%d",&n);

    scanf("%s",s);

    scanf("%d",&m);

    int num=0;

    for (int i=0;s[i]!='\0';i++)     // n进制整数按权值展开后转换为十进制整数num

    {

        if (s[i]>='0' && s[i]<='9')

            num=num*n+s[i]-'0';

        else

            num=num*n+s[i]-'A'+10;

    }

    int digit[32],cnt=0;

    do {                   // 十进制整数采用“除m取余”转换为m进制整数

        digit[cnt++]=num%m;

        num=num/m;

    } while (num!=0);

    for (int i=cnt-1;i>=0;i--)

        printf("%c",table[digit[i]]);

    printf("\n");

    return 0;

}

标签:10,数制,进制,int,整数,转化,num,转换,十进制
From: https://www.cnblogs.com/cqdycazs/p/17348144.html

相关文章

  • 数制度转换
    一、问题描述:二、设计思路:  三、程序流程图:#include<stdio.h>#definea101/*最大允许字符串长度*/intchar_to_num(charch);/*返回字符对应的数字*/intnum_to_char(intnum);/*返回数字对应的字符*/longother_to_decimal(chartemp[],intother);/*返回由原数转......
  • [oeasy]python0137_相加运算_python之禅_import_this_显式转化
    变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串 输入单个变量没有问题但是输入两个变量之后一相加就非常离谱 ​ 添加图片注释,不超过140字(可选)......
  • 101到200的质数
    质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。我们设定一个数为x,根据质数的定义判断x是否为质数,我们看它能否被2、3、4······、x-1整除,如果它不能被其中任何一个整数整除,则这个数就是质数。思路就是先判断一个数是不是质数,再去拓展......
  • P4180 [BJWC2010] 严格次小生成树
    P4180[BJWC2010]严格次小生成树/*建立一个最小生成树维护最大值和严格次小值然后直接查询就可以了56121132243354343456*/#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongusingpii=pair<int,int>;constintN=1e......
  • 每周一记10
    首先,承载所需功能的软件自身必须要健康才行。达到这一点,需要从计算机硬件的边界完整考虑其生命周期,如机房、电源、计算机资源、网络资源等硬件资源的生命周期;还需要从计算机软件的边界完整考虑其生命周期,如启动、到服务、到关闭等。二者都需要完整考虑,也都需要进行监控。这是软件......
  • 多校第六场 1011 hdu 5363Key Set(组合数学)
    题目链接:hdu5363题目大意:给出一个到n的自然数集合,问它有多少个子集,元素之和是偶数。题目分析:首先偶数不会导致集合的和的奇偶性发生变化;奇数会导致集合的和的奇偶性发生变化。我们设奇数m1个,偶数m2个。所以我们可以选取0~m1个偶数,但是只能选取偶数个奇数。那么偶数的方案数就是......
  • hdu 5441 长春区域赛网络赛 1005 Travel(并查集)
    题目链接:hdu5441题目大意:有一个n个点的无向图,给出m条边的边权,给出q次询问,每次给出一个值,求用到所有边权不大于这个值的边的情况下,能够互相到达的点对的个数(自己到自己不算)题目分析:首先我们对于边按照边权从小到大排序,对于询问按照值从小到大排序。枚举每次询问,从前到后扫描边,如果......
  • hdu 5442 长春区域赛网络赛 1006 Favorite Donut(后缀数组)
    题目链接:hdu5442题目大意:给出一个环,每颗珠子有一个甜度,选择第一个珠子和吃的方向,问得到的吃珠子的字符串的字典序最大的,如果有多个,选取位置最靠前的,如果还是多个,选择顺时针吃的。题目分析:-首先构造一个字符串,首先正着按环吃,那么就是字符串正着写两遍,连接在一起;中间用没有出现过的......
  • hdu 5446 长春区域赛网络赛1010 Unknown Treasure(lucas定理+中国剩余定理+移位乘法)
    题目链接:hdu5446题目大意:求出Cmn%M,M=p1⋅p2⋯pk题目分析:首先对于每个质数pi我们,我们可以利用Lucas定理求出Cmn%pi的值,Lucas定理如下:Cmn%p=Cm/pn/p⋅Cm%pn%p%p然后我们可以利用中国剩余定理求取最后答案:M=∏i=1kpi,Mi=M/piCmn%M=∑i=1kCmn%pi⋅Mi⋅inv[Mi]因为做乘法......
  • hdu 5444 长春区域赛网络赛 1008 Elven Postman(模拟)
    题目链接:hdu5444题目大意:给出一个序列,这个序列的第一个点是树的根节点,每次操作从当前点走到当前最靠右的每走过的点(点的序号越小越靠右),问将物品从根送到某个点的行进路线.题目分析:个人认为难在题意。。。构造出这个树之后,直接从目的地走回根节点就可以得到要求的路径。然后如何构......