概述
①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语言如何实现进制数转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复