我想在 RAD Studio C++ Builder XE 中将十六进制字符串转换为 16 位十进制。
例如,我有十六进制字符串“8FC”。二进制表示为 100011111100。十进制表示为:2300。
如何在 C++ Builder XE 中进行这种转换?
我想在 RAD Studio C++ Builder XE 中将十六进制字符串转换为 16 位十进制。
例如,我有十六进制字符串“8FC”。二进制表示为 100011111100。十进制表示为:2300。
如何在 C++ Builder XE 中进行这种转换?
最后,我在这篇文章中找到了如何进行这种转换的正确方法。它只是尝试调用该StrToInt()
过程,但在前面加上一个“ $ ”,如下所示:
s1 = "8FC";
int i = StrToInt(UnicodeString("$") + s1);
Edit1->Text = IntToStr(i);
一种简单的方法是使用std:stringstream
#include <ios>
#include <sstream>
#include <ostream>
#include <iostream> // MS & Borland seem to be deficient in requiring this
int main()
{
unsigned short val;
std::stringstream st("8FC");
st >> std::hex >> val;
// convert it back to text as decimal
st.clear();
st << std::dec << val;
std::cout << "Decimal value " << st.str() << std::endl;
}