C++进制转换里面的一些函数

进制转换里面的一些函数

C++里面自己写的函数(可以转换2-36的函数)

long long convert(string n, long long radix) {
    long long sum = 0;
    int index = 0, temp = 0;
    for (auto it = n.rbegin(); it != n.rend(); it++) {
        temp = isdigit(*it) ? *it - '0' : *it - 'a' + 10;
        sum += temp * pow(radix, index++);
    }
    return sum;
}

String类型转换成int类型

注意,atoi直接放string类型是不对的,因为atoi里面的参数只能是char *的类型

如果是string类型的话.一定要加一个 .c_str()

/* atoi example */
#include <stdio.h>      /* printf, fgets */
#include <stdlib.h>     /* atoi */
#include <string>
using namespace std;
int main ()
{
  int i;
  string a="123";
  i = atoi(a.c_str());
  printf ("%d",i);
  return 0;
}

int 类型转换成string类型

就是我们常用的

to_string(a) a的类型是int

需要的头文件为string

例子如下:

#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    int a=123;
    cout<<to_string(a);
}

任意之间的进制转换

 int len = 0, arr[100];
 do {
     arr[len++] = n % d;
	n = n / d;
 } while (n != 0);
//柳神的老方法了.专门用来转换进制的.自己写的时候,忘记了.
for (int i = 0; i < len; i++)
    n = n * d + arr[i];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值