unsigned int 转 16进制 的string,该如何解决
unsigned int 转 16进制 的string
我想写个函数 想转换 数字 到字符串, 字符串是 16进制的 大家有没有什么思路
例如:
输入 》58965
输出 》"0x0655"
------解决方案--------------------
可以使用scanf函数读入,简单写一段给你参考
int main()
{
int input;
scanf("%d",&input);
printf("0x%08x",input);
return 0;
}
你输入的10进制数字会被读入到input中,再以16进制打印出来
------解决方案--------------------
我想写个函数 想转换 数字 到字符串, 字符串是 16进制的 大家有没有什么思路
例如:
输入 》58965
输出 》"0x0655"
------解决方案--------------------
可以使用scanf函数读入,简单写一段给你参考
int main()
{
int input;
scanf("%d",&input);
printf("0x%08x",input);
return 0;
}
你输入的10进制数字会被读入到input中,再以16进制打印出来
------解决方案--------------------
- C/C++ code
#include <iostream> #include <string> using namespace std; char ToHexChar(int n) { return n<10 ? n+'0' : n-10+'A'; } string foo(unsigned int n) { char t, buff[32]={'0','x', 0}; int i = 2, j = 2; do buff[i++] = ToHexChar(n%16); while (n/=16); for (--i; j < i; ++j, --i) t = buff[i], buff[i] = buff[j], buff[j] = t; return buff; } int main() { unsigned int n; while (cin >> n) cout << foo(n) << endl; return 0; }
------解决方案--------------------
- C/C++ code
// 58965的16进制是0xE655 // 不一定是最佳方法 #include <iostream> #include <string> using namespace std; string IntToHex(unsigned int num) { char *chp; char ch, chl, chh; string hex("0x"); chp = (char *)# int int_size = sizeof(int); for (int i=int_size; i>=0; i--) { ch = *(chp + i); chh = (ch & 0xF0) >> 4; chl = ch & 0x0F; chh = chh>0x09 ? chh+0x37 : chh+0x30; chl = chl>0x09 ? chl+0x37 : chl+0x30; hex = hex + chh + chl; } return hex; } int main() { unsigned int n; cout << "int:"; cin >> n; cout << "hex:" << IntToHex(n) << endl; return 0; }
------解决方案--------------------
- C/C++ code
#include <iostream> using namespace std; char *DecToHex(char *hex, unsigned int dec) { char ch, *left=hex, *right=hex; do { if ((ch=dec%16)<10) *right++ = ch+'0'; else *right++ = ch+55; }while ((dec>>=4) != 0); *right-- = '\0'; while (left<right) { ch = *left; *left++ = *right; *right-- = ch; } return hex; } int main() { int dec=58965; char hex[30]; memset(hex,0,30); DecToHex(hex,dec); cout<<hex<<endl; return 0; }
------解决方案--------------------
------解决方案--------------------
- C/C++ code
#include <string> #include <iostream> #include <strstream> void unsigned_to_hex(unsigned int value, std::string& hex_string) { std::strstream buffer; buffer.setf(std::ios::showbase); buffer <<std::hex << value; buffer >> hex_string; } int main() { unsigned int value; std::cin >> value; std::string hex_string; unsigned_to_hex(value, hex_string); std::cout << hex_string; return 0; }