Arrays 如何将原始十六进制字符[]转换为ascii字符串-C++;网络

Arrays 如何将原始十六进制字符[]转换为ascii字符串-C++;网络,arrays,.net,byte,c++-cli,Arrays,.net,Byte,C++ Cli,我正在修改一些通过USB发送和接收数据的现有代码。数据以ascii格式输入文本框,转换为原始数据,即“1”=01h,然后发送到USB处理程序 我有以下代码可以将字符串转换为十六进制: String^ TestString = TxDataTB->Text; //Prepare a USB OUT data packet to send to the device firmware //convert to a byte array Encoding^ a

我正在修改一些通过USB发送和接收数据的现有代码。数据以ascii格式输入文本框,转换为原始数据,即“1”=01h,然后发送到USB处理程序

我有以下代码可以将字符串转换为十六进制:

    String^ TestString = TxDataTB->Text;

    //Prepare a USB OUT data packet to send to the device firmware

    //convert to a byte array
    Encoding^ ascii = Encoding::GetEncoding("iso-8859-1");
    array<Byte>^ TxHexData = ascii->GetBytes(TestString);
    cli::pin_ptr<UCHAR> pin_ptr_n = &TxHexData[0];
    UCHAR* ptr_n = pin_ptr_n;

    //Now send the USB packet data in the OUTBuffer[] to the device firmware.
    USBHandler->SendData(ptr_n, Msglength, PipeNo);
String^TestString=txdata->Text;
//准备一个USB输出数据包以发送到设备固件
//转换为字节数组
Encoding^ascii=Encoding::GetEncoding(“iso-8859-1”);
数组^TxHexData=ascii->GetBytes(TestString);
cli::pin_ptr pin_ptr_n=&TxHexData[0];
UCHAR*ptr_n=引脚ptr_n;
//现在,将exputffer[]中的USB数据包发送到设备固件。
USBHandler->SendData(ptr_n、Msglength、PipeNo);
这似乎可以完成工作,我已经用一个断点测试过了(还没有硬件!)。
我正在努力寻找一种方法来将接收到的数据转换为字符串^-getBytes似乎只适用于已编码格式的数据;Convert似乎只适用于数组^,我甚至找不到将char[]转换为数组的方法^以ascii格式发送数据在该应用程序中不是一个选项

我不清楚您要的转换类型。您能否提供一个精确输入字符串的示例,以及它将转换为什么?以
String^input=“foobar”的形式进行操作;数组^expectedOutput=gcnew数组{1,2,3,4}我想转换如下数组:无符号字符输入[]={0x01,0xAA,0x55};into:String^output=“01AA55”使用位转换器::ToString(输入)。您将在字节值之间获得-破折号,String::Replace()以删除它们。我不清楚您要的转换类型。您能否提供一个精确输入字符串的示例,以及它将转换为什么?以
String^input=“foobar”的形式进行操作;数组^expectedOutput=gcnew数组{1,2,3,4}我想转换如下数组:无符号字符输入[]={0x01,0xAA,0x55};into:String^output=“01AA55”使用位转换器::ToString(输入)。您将在字节值String::Replace()之间获得-破折号以删除它们。