[英]String to byte hex convert
我想问一个关于从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需要像0x0A这样的整个十六进制值,我需要向API发送0x0A。
在提供fromBase
同时尝试Convert.ToByte (在您的情况下为16
)
// "0A" (string) -> 0x0A == 10 == 0b00001010 (byte)
byte result = Convert.ToByte(hexString, 16);
...
SomeApiMethod(..., result, ...);
如果您实际上已经对Int32
编码(例如"FF120A"
),并且您想获取最后一个字节 :
// "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, ...);
请注意, byte
(例如0x0A
)始终是相同的 ,它的字符串表示形式可能会有所不同 :
// 00001010 - binary
Console.WriteLine(Convert.ToString(result, 2).PadLeft(8, '0'));
// 10 - decimal
Console.WriteLine(result);
// 0A - hexadecimal
Console.WriteLine(result.ToString("X2"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.