进制转换类问题
标签: 进制转换类问题
学习人数: 45.2k


高清播放
赞赏支持

进制转换类的题目在绝大多数学校都是必考题目之一,这类题目的既基础又灵活,能看出学生的编程功底,所以这类题目一定要掌握。

 

总的来说,跟进制相关的题目可以分为以下几种题型

1、反序数:输入一个整数如123,将其转换为反序之后的整数321
2、10进制转2进制:将一个10进制整数转化为一个2进制的整数
例如:7转换为111
3、10进制转16进制:将一个10进制整数转化为一个16进制的整数
例如:10转换为A
4、10进制转x进制:将一个10进制整数转化为一个x进制的整数
解析:这是前面两个的一种通解,如果会前面两种那么这个自然也触类旁通。
5、x进制转10进制:将一个x进制整数转化为一个10进制的整数
解析:这是上一种情况的反例,看代码之后相信也能容易理解。
6、x进制转y进制:将一个x进制整数转化为一个y进制的整数
解析:遇到这种情况,可以拆解为x先转为10进制,然后再将10进制转为y进制。
7、字符串转浮点数
例如:有一串字符串31.25 将其转换为一个浮点数,可以先转整数部分,再转小数部分,最后相加即可。
8、浮点数转字符串
例如:有一个浮点数23.45将其转换为一个字符串进行存储,可以将整数和小数拆开再合并成一个字符串。
9、字符串转整型和整形转字符串
解析:直接用atoi函数和itoa函数即可。

 

反序数代码

#include <stdio.h>  
  
int main() {  
    int n;  
    scanf("%d", &n);  
    int ans = 0;//将反序之后的答案存在这里  
    while (n > 0) {//将n逐位分解  
        ans *= 10;  
        ans += (n % 10);  
        n /= 10;  
    }  
    printf("%d\n", ans);  
    return 0;  
}  

 


10进制转x进制代码(x小于10的情况)

#include <stdio.h>  
  
int main() {  
    int n, x;  
    int s[105];  
    //输入10进制n 和 要转换的进制x  
    scanf("%d%d", &n, &x);  
    int cnt = 0;//数组下标  
    while (n > 0) {//将n逐位分解  
        int w = (n % x);  
        s[cnt++] = w;  
        n /= x;  
    }  
    //反序输出  
    for (int i = cnt - 1; i >= 0; i--) {  
        printf("%d", s[i]);  
    }  
    printf("\n");  
    return 0;  
}  
转x进制代码(通用版)

 

 

10进制转x进制代码(通用版)

#include <stdio.h>  
  
int main() {  
    int ...
登录查看完整内容


课后作业

题目练习

DreamJudge 1454 反序数
DreamJudge 1259 进制转换2
DreamJudge 1176 十进制和二进制
DreamJudge 1380 二进制数
DreamJudge 1417 八进制
DreamJudge 1422 进制转换3
DreamJudge 1097 负二进制


登录后开始许愿

暂无评论,来抢沙发