Попробуйте Convert.ToByte при предоставлении fromBase
(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"));