1.十进制转成R进制。取余,然后倒序输出,注意10-15用A-F表示。
例如 12(10) == 110(3)
void itoa(int n, int R){ int a[M],i = 0; while(n > 0){ a[i++] = n%R; n /= R; } i--; for(i; i >= 0; i--){ cout<<a[i]; } }
2.二进制转换成R进制。取余,然后倒序输出。
例如:111011001/111=1000011 余100,七进制数4
1000011/111=1001 余100,七进制数4
1001/111=1 余10,七进制数2
1/111=0 余1,七进制数1
(111011001)2=(1244)7
(转换成4,8,16进制的时候,先补充0,直接2,3,4位一取,换成十进制数,注意10-15用A-F表示)
例如: 11101010 (2) == 1110 1010 == EA (16)
11101010 (2) == 011 101 010 == 352 (8)
11101010 (2) == 11 10 10 10 == 3222 (4)
3.R进制转换成10进制
abcd(R) == a * pow(R,3) + B * pow(R,2) + C * pow(R,1) + D * pow(R,0)
4.补充一个c语言里面的进制转换函数 _itoa(int , char *, R) (在头文件cstdlib里面。 #include<cstdlib> )
函数的三个参数,第一个是被转换的数,第二个是转化结果的地址,第三个是目标进制。
#include <bits/stdc++.h> using namespace std; int main(){ char s[100]; itoa(15,s,2); cout<<s<<endl; return 0; }