Re: [問題]VC++ String^ 轉成 16進制的 unsigned c …
※ 引述《metroways (qq)》之銘言:
: 如題,
: 小弟希望能夠將使用者在textbox輸入的"123ABCDF" (舉例),
: 儲存成
: unsigned char key[] = {0x12 , 0x3A , 0xBC , 0xDF},
: 不知道,有什麼作法可以達到這個需求呢?
: 感謝版友。
using namespace System;
using namespace System::Globalization;
int main(array<System::String ^> ^args)
{
String ^str = L"123ABCDF";
long l = long::Parse(str, NumberStyles::HexNumber);
unsigned char *ptr = (unsigned char *)&l;
for (int i = 3; i >= 0; i--)
Console::WriteLine("ptr[{0}] = {1:X}", i, ptr[i]);
return 0;
}
輸出:
ptr[3] = 12
ptr[2] = 3A
ptr[1] = BC
ptr[0] = DF
照這樣的想法,要再做倒過來擺還是其他的工作,應該都不困難了吧?
根據 loveme00835 板友在原文的推文,另外一種方法
int main(array<System::String ^> ^args)
{
String ^str = L"123ABCDF";
for (int i = 0; i < 4; i++)
Console::WriteLine("{0:X}",
Byte::Parse(str->Substring(i * 2, 2),
NumberStyles::HexNumber));
return 0;
}
其實更簡單耶...XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
→
06/30 21:04, , 1F
06/30 21:04, 1F
※ 編輯: james732 來自: 140.117.171.46 (06/30 21:06)
※ 編輯: james732 來自: 140.117.171.46 (06/30 21:09)
→
06/30 21:12, , 2F
06/30 21:12, 2F
→
06/30 21:14, , 3F
06/30 21:14, 3F
推
06/30 21:19, , 4F
06/30 21:19, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章