进制的转换
stoi函数(<string>)与itoa函数(<stdlib.h>)
/*
原型:int stoi(string str, size_t* idx = 0, int base = 10);
str:欲转换的数据;idx:目标字符串的起始转换地址;base:待转换数据的进制。
功能:把一个字符串按照base进制转换成数字,至str的第一个非法字符结束
*/
//其余进制转十进制
string str = "0A";//16->10
0int val = stoi(str,0,16);// val=10
/*
原型:char* itoa(int value, char *str,int base);
value:欲转换的数字;str:目标字符串的地址;base:将数字转换成base进制的字符串。
功能:把一个数字转换成base进制的字符串。
*/
//十进制转其余进制
//注意:itoa非标准函数
int num = 125;//10->16
char str[10];
itoa(num, str, 16);//str = "7d"
stringstream类(<sstream>)
//十进制转十六进制
stringstream ss;
int decimal = 52;
ss << hex << decimal;// << 读入到流中
int conhex = stoi(ss.str());//
ss.clear();
//十六进制转十进制
stringstream ss1;
string hex_test = "A5";
int decimal2;
ss1.str(hex_test);// ss1 >> hex_test;
sst >> hex >> decimal2;// >> 从流中读出
ss1.clear();
sprintf函数(<stdio.h>)
C语言风格;