C++进制转换的两种方法

进制的转换

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语言风格;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值