找回密码
 中文实名注册
查看: 223|回复: 1

进制转换

[复制链接]

5

主题

125

帖子

2185

积分

金牌会员

Rank: 6Rank: 6

积分
2185
发表于 2024-6-1 10:58:44 | 显示全部楼层 |阅读模式
本帖最后由 周星宇 于 2024-6-2 10:12 编辑

任意进制转换成10进制:strtol
[C++] 纯文本查看 复制代码

#include <bits/stdc++.h>
using namespace std;
int main(){
     char a[10];//需要转换的字符串
     cin>>a;
     int aj;//需要转换字符串的进制
     cin>>aj;
     char *stop;//用于存储转换字符串的无效字符
     int ans=strtol(a,&stop,aj);//ans为转换好后的10进制整数,aj为转换字符串的进制
     cout<<ans<<endl;
     return 0;
}

10进制转任意进制:itoa
[C++] 纯文本查看 复制代码

#include <bits/stdc++.h>
using namespace std;
int main(){
     int num;//需要转换的10进制整数
     cin>>num;
     int aj;//转换后的进制
     cin>>aj;
     char str[100];//转换好后的字符串
     itoa(num,str,aj);//aj为转结果的进制数
     cout<<str<<endl;
      return 0;
}







回复

使用道具 举报

5

主题

125

帖子

2185

积分

金牌会员

Rank: 6Rank: 6

积分
2185
 楼主| 发表于 2024-6-2 10:08:25 | 显示全部楼层

任意进制转换 strtol+itoa

本帖最后由 周星宇 于 2024-6-2 10:13 编辑

[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
int main(){
         char a[10];//需要转换的字符
         cin>>a;
         int aj;//转换字符的进制
         cin>>aj;
         int sj;//转换的目标进制
         cin>>sj;
     char *stop;
     int ans=strtol(a,&stop,aj);
     char str[100];
     itoa(ans,str,sj);
     cout<<str<<endl;
    return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-9-8 10:28 , Processed in 0.040062 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表