그냥 StrToInt 쓰시면 됩니다.
문자열 "FF" 를 숫자 100으로 바꾸려면
그냥 StrToInt를 쓰면 되는데..
16진수인것을 나타내기 위해서 문자열 앞에 'x' 나 '$' 등을 붙여주시면 됩니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int val1 = StrToInt("xFF");
int val2 = StrToInt("$FFFF");
int val3 = StrToInt("0x0f");
ShowMessage(val1);
ShowMessage(val2);
ShowMessage(val3);
}
//---------------------------------------------------------------------------
그럼..
땅주인 님이 쓰신 글 :
: 16진수 스트링을 decimal으로 변환하는 매크로를 작성했는데..
:
: 매크로 * 값 하면 에러 나고..
: 값 * 매크로 하면 에러가 나지 않네요.. 매크로를 수식 중간에 쓸 수 없다.. 뭐 이런 얘기는 못 들은 것 같은데..
:
:
: #define HEXTODECIMAL(x) (( x == "0") ? 0 : \
: (( x == "1") ? 1 : \
: (( x == "2") ? 2 : \
: (( x == "3") ? 3 : \
: (( x == "4") ? 4 : \
: (( x == "5") ? 5 : \
: (( x == "6") ? 6 : \
: (( x == "7") ? 7 : \
: (( x == "8") ? 8 : \
: (( x == "9") ? 9 : \
: (( x == "A") ? 10 : \
: (( x == "B") ? 11 : \
: (( x == "C") ? 12 : \
: (( x == "D") ? 13 : \
: (( x == "E") ? 14 : \
: (( x == "F") ? 15 : 0 ))))))))))))))));
: ....
: UnicodeString HexStr = "A5";
: int i,j,k;
: UnicodeString a,b;
: a = HexStr.SubString(1,1).UpperCase();
: b = HexStr.SubString(2,1).UpperCase();
:
: i = HEXTODECIMAL(a) * 16; // Error~! but => i = 16 * HEXTODECIMAL(a); => Ok~!
: j = HEXTODECIMAL(b);
:
: k = i + j;
:
:
: [BCC32 Error] Unit2.cpp(48): E2062 Invalid indirection
:
: 코스 상 좀 깔끔하지 않은 것 같아서.. 왜 이런 것이지요?
: 그리고, Hex String을 값으로 바꾸는 깔끔한 방법은?
:
: 감사합니다.
|