十进制数 -> 十进制字符串

  1. #include <string>
  2. // 转换十进制的数到十进制字符串
  3. string to_string (int val);
  4. string to_string (long val);
  5. string to_string (long long val);
  6. string to_string (unsigned val);
  7. string to_string (unsigned long val);
  8. string to_string (unsigned long long val);
  9. string to_string (float val);
  10. string to_string (double val);
  11. string to_string (long double val);

十进制数 ->十六进制字符串

  1. #include <string>
  2. // 转换十进制数到十六进制字符串
  3. #include <sstream>
  4. string itohex(unsigned long int num)
  5. {
  6. stringstream ss;
  7. ss << hex << num;
  8. string digit;
  9. ss >> digit;
  10. return digit;
  11. }

十进制数 -> 二进制字符串

  1. #include <string> // std::string
  2. #include <bitset> // std::bitset
  3. std::bitset<16> foo;
  4. std::bitset<16> bar (0xfa2);
  5. std::bitset<16> baz (std::string("0101111001"));
  6. std::cout << "foo: " << foo << '\n';
  7. std::cout << "bar: " << bar << '\n';
  8. std::cout << "baz: " << baz << '\n';
  9. // 输出结果:
  10. foo: 0000000000000000
  11. bar: 0000111110100010
  12. baz: 0000000101111001
  13. foo.size() 返回大小(位数)
  14. foo.count() 返回1的个数
  15. foo.any() 返回是否有1
  16. foo.none() 返回是否没有1
  17. foo.set() 全都变成1
  18. foo.set(p) 将第p + 1位变成1
  19. foo.set(p, x) 将第p + 1位变成x
  20. foo.reset() 全都变成0
  21. foo.reset(p) 将第p + 1位变成0
  22. foo.flip() 全都取反
  23. foo.flip(p) 将第p + 1位取反
  24. foo.to_ulong() 返回它转换为unsigned long的结果,如果超出范围则报错
  25. foo.to_ullong() 返回它转换为unsigned long long的结果,如果超出范围则报错
  26. foo.to_string() // 返回它转换为string的结果

各进制字符串 -> 十进制数

  1. #include <string>
  2. // 转换字符串(十进制,十六进制,二进制)到十进制的数
  3. // base : 10\16\2
  4. int stoi (const string& str, size_t* idx = 0, int base = 10);
  5. long long stoll (const string& str, size_t* idx = 0, int base = 10);
  6. unsigned long stoul (const string& str, size_t* idx = 0, int base = 10);
  7. long int strtol (const char* str, char** endptr, int base);