字符串到字节十六进制转换
String to byte hex convert
我想问一个关于字符串从 windows 形式转换为字节的问题,我已经尝试了几种方法来做到这一点,虽然将字符串转换为十六进制是成功的,但我需要解决这个问题将其转回十六进制字节,因为 API 仅获取字节。
下面是转换:
string getTxtString = txtString.text;
int convertToInt = int32.Parse(getTxtString);
string hexString = convertToInt.toString("X");
// 我试过 X2 它将得到两位数字,例如 0A
在这种情况下如何转换为 Hex 字节或请提供其他解决方案。
例如:
11 = 0A
0A是下面的转换:
int convertToInt = int32.Parse(getTxtString);
string hexString = convertToInt.toString("X2");
从上面的转换只会得到0A。
Api 需要完整的 Hex 值,如 0x0A,我需要将 0x0A 发送到 API。
在提供 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"));
我想问一个关于字符串从 windows 形式转换为字节的问题,我已经尝试了几种方法来做到这一点,虽然将字符串转换为十六进制是成功的,但我需要解决这个问题将其转回十六进制字节,因为 API 仅获取字节。
下面是转换:
string getTxtString = txtString.text;
int convertToInt = int32.Parse(getTxtString);
string hexString = convertToInt.toString("X");
// 我试过 X2 它将得到两位数字,例如 0A
在这种情况下如何转换为 Hex 字节或请提供其他解决方案。
例如: 11 = 0A
0A是下面的转换:
int convertToInt = int32.Parse(getTxtString);
string hexString = convertToInt.toString("X2");
从上面的转换只会得到0A。 Api 需要完整的 Hex 值,如 0x0A,我需要将 0x0A 发送到 API。
在提供 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"));