我是靠谱客的博主 积极发带,最近开发中收集的这篇文章主要介绍C语言如何实现进制数转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

①X进制转10进制: 给定X进制数N,把N转化为十进制并输出。其中2≤X≤16,16进制中的字母是大写字母.

难点还是在各种进位上!

函数:

long long hanshu(int x,string s){//x:x进制
s:输入的x进制数(为了方便,用string)
long long sum=0,c=1;
for(int i=s.size()-1;i>=0;i--){//开始转进制
if(s[i]<='9')
sum+=(s[i]-'0')*c;
else
sum+=(s[i]-'A'+10)*c;
c*=x;
}
return sum;//转好的数
}

实例:

        X进制转10进制.

题目描述

给定X进制数N,把N转化为十进制并输出。其中2≤X≤16,16进制中的字母是大写字母。

输入格式

一行,用空格分隔的两个数,表示X 进制的数 N

输出格式

一行,转换后的十进制数

输入输出样列

输入样例:                                                       输出样例:

16 B1                                                               177

#include<bits/stdc++.h>
using namespace std;
long long hanshu(int x,string s){
long long sum=0,c=1;
for(int i=s.size()-1;i>=0;i--){
if(s[i]<='9')
sum+=(s[i]-'0')*c;
else
sum+=(s[i]-'A'+10)*c;
c*=x;
}
return sum;
}
int main(){
int x;
string s;
cin>>x>>s;
cout<<hanshu(x,s);
return 0;
}

10进制转x进制: 将一个10进制整数n,转换为一个x进制整数并输出(2≤x≤16),16进制中的字母是大写字母.

难点依旧在各种进位上!

函数:

实例:

        10进制转x进制

题目描述

将一个10进制整数n,转换为一个x进制整数并输出(2≤x≤16)。

输入格式

一行:两个整数,分别代表被转换的10进制整数n和要转换的进制x

输出格式

一行:十进制n转换后的x进制数(10进制以上:分别使用A , B, C, D, E, F代表10, 11, 12, 13, 14, 15,)。

输入输出样列

输入样例:                                                     输出样例:

12 16
C

代码:

#include<bits/stdc++.h>
using namespace std;
string hanshu(int n,int x){
string s;
char c;
while(n){
if(n%x<=9)
c=n%x+'0';
else
c=n%x+('A'-10);
s.push_back(c);
n/=x;
}
reverse(s.begin(),s.end());
return s;
}
int main(){
int n,x;
cin>>n>>x;
cout<<hanshu(n,x);
return 0;
}

最后

以上就是积极发带为你收集整理的C语言如何实现进制数转换的全部内容,希望文章能够帮你解决C语言如何实现进制数转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部