如何在BCB XE中将十六进制字符串编码为整数

时间:2013-06-03 10:05:18

标签: c++ hex c++builder c++builder-xe

我想在RAD Studio C ++ Builder XE中将十六进制字符串转换为16位十进制。

例如,我有十六进制字符串“8FC”。二进制表示形式为100011111100.这个的十进制表示为:2300。

如何在C ++ Builder XE中进行此转换?

2 个答案:

答案 0 :(得分:6)

最后,我找到了如何在this article上进行此转换的正确方法。它只是尝试调用StrToInt()程序,但是像这样预先添加“ $ ”:

s1 = "8FC";
int i = StrToInt(UnicodeString("$") + s1);
Edit1->Text = IntToStr(i);

答案 1 :(得分:0)

一种简单的方法是使用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;
}