作者james732 (好人超)
站內C_and_CPP
標題Re: [問題]VC++ String^ 轉成 16進制的 unsigned c …
時間Wed Jun 30 20:58:32 2010
※ 引述《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
※ 編輯: james732 來自: 140.117.171.46 (06/30 21:06)
※ 編輯: james732 來自: 140.117.171.46 (06/30 21:09)
→ loveme00835:用 .NET 庫好多 :: 符號, 不習慣 > < 06/30 21:12
→ james732:C#的話就一律用「.」了 不像C++分得這麼清楚...XD 06/30 21:14
推 metroways:先謝過了,我測試看看,非常感謝~ 06/30 21:19