Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串到字节的十六进制转换_C#_C# 4.0 - Fatal编程技术网

C# 字符串到字节的十六进制转换

C# 字符串到字节的十六进制转换,c#,c#-4.0,C#,C# 4.0,我想问一个关于从windows窗体将字符串转换为字节的问题,我尝试了几种方法来实现这些,而将字符串转换为十六进制是成功的转换为字符串,但问题是我需要将其转换回十六进制字节,因为API只获取字节 这是下面的转换: string getTxtString = txtString.text; int convertToInt = int32.Parse(getTxtString); string hexString = convertToInt.toString("X"); //我尝试了X2,它将

我想问一个关于从windows窗体将字符串转换为字节的问题,我尝试了几种方法来实现这些,而将字符串转换为十六进制是成功的转换为字符串,但问题是我需要将其转换回十六进制字节,因为API只获取字节

这是下面的转换:

string getTxtString = txtString.text;
int convertToInt = int32.Parse(getTxtString);
string hexString = convertToInt.toString("X"); 
//我尝试了X2,它将得到两位数,例如0A

在这种情况下如何转换为十六进制字节,或者请提供其他解决方案

例如: 11=0A

0A是以下各项的转换:

 int convertToInt = int32.Parse(getTxtString);
 string hexString = convertToInt.toString("X2");
从上面的转换将只得到0A。 Api需要整型Hex值,比如0x0A,我需要将0x0A发送给Api。

在提供
fromBase
的同时尝试(
16

如果您实际编码了一个
Int32
(例如
“FF120A”
),并且希望获取最后一个字节:

请注意,
字节
(例如,
0x0A
)总是相同的,它的字符串表示形式可能会有所不同:


byte result=Convert.ToByte(十六进制字符串,16)
@DmitryBychenko它得到整数,但我需要十六进制值才能将其发送到APII对不起;如果只需要一个
字节
,它应该是
Convert.ToByte
11=0A
?打字错误?@Fildor很抱歉我写的问题不好,问题已经更新了。谢谢你的快速回答,在我的情况下API只接收字节,我需要将字符串转换为int32或ToString(“X2”)以获得十六进制值,从您的答案来看,它只是使用字符串字节来获取转换为API的值吗?@Victor:您有一个表示某个整数值(例如“FF120A”)的
字符串,API希望
字节
(例如
0x0A==10=0b00001010
)而不是它的字符串表示形式。如果您可以保证
字符串
字节
,请将
转换为.ToByte
;如果没有-您必须添加强制转换:
未选中((字节)Convert.ToInt32(…)
@Dmitry Bychenko感谢您的建议,我尝试使用int或byte转换我的字符串,例如“0x0A”,它显示格式错误,但原因是什么?@Victor:请问导致错误的代码是什么?int getbyte=Convert.ToByte(string)或byte getbyte=Convert.ToByte(弦),我觉得我错了,对吗?
 // "0A" (string) -> 0x0A == 10 == 0b00001010 (byte)
 byte result = Convert.ToByte(hexString, 16);

 ...

 SomeApiMethod(..., result, ...); 
 // "FF120A" (or "0xFF120A") -> 0xFF120A (int) -> 0x0A (byte)
 // unchecked - we don't want OverflowException on integer overflow
 byte result = unchecked((byte)Convert.ToInt32(hexString, 16));

 ...

 SomeApiMethod(..., result, ...); 
 // 00001010 - binary
 Console.WriteLine(Convert.ToString(result, 2).PadLeft(8, '0')); 
 // 10       - decimal
 Console.WriteLine(result);  
 // 0A       - hexadecimal
 Console.WriteLine(result.ToString("X2"));