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

    科技2025-10-31  4

    进制转换里面的一些函数

    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];
    Processed: 0.016, SQL: 8