十进制数 -> 十进制字符串
#include <string>// 转换十进制的数到十进制字符串string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long val);string to_string (float val);string to_string (double val);string to_string (long double val);
十进制数 ->十六进制字符串
#include <string>// 转换十进制数到十六进制字符串#include <sstream>string itohex(unsigned long int num) { stringstream ss; ss << hex << num; string digit; ss >> digit; return digit;}
十进制数 -> 二进制字符串
#include <string> // std::string#include <bitset> // std::bitsetstd::bitset<16> foo;std::bitset<16> bar (0xfa2);std::bitset<16> baz (std::string("0101111001"));std::cout << "foo: " << foo << '\n';std::cout << "bar: " << bar << '\n';std::cout << "baz: " << baz << '\n';// 输出结果:foo: 0000000000000000bar: 0000111110100010baz: 0000000101111001foo.size() 返回大小(位数)foo.count() 返回1的个数foo.any() 返回是否有1foo.none() 返回是否没有1foo.set() 全都变成1foo.set(p) 将第p + 1位变成1foo.set(p, x) 将第p + 1位变成xfoo.reset() 全都变成0foo.reset(p) 将第p + 1位变成0foo.flip() 全都取反foo.flip(p) 将第p + 1位取反foo.to_ulong() 返回它转换为unsigned long的结果,如果超出范围则报错foo.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错foo.to_string() // 返回它转换为string的结果
各进制字符串 -> 十进制数
#include <string>// 转换字符串(十进制,十六进制,二进制)到十进制的数// base : 10\16\2 int stoi (const string& str, size_t* idx = 0, int base = 10);long long stoll (const string& str, size_t* idx = 0, int base = 10);unsigned long stoul (const string& str, size_t* idx = 0, int base = 10);long int strtol (const char* str, char** endptr, int base);