Перевод данных в байтовую последовательность формата "0x" C#
Как закодировать данные в байтовую последовательность?
Пример данных:
string: "Nissan",
float: 1.6F,
int: 2008
Выходные данные:
Model: "Nissan" => 0x4E 0x69 0x73 0x73 0x61 0x6E,
Engine: 1.6F => 0x3F 0xCC 0xCC 0xCD,
Year: 2008 => 0x07 0xD8
Необходимо это сделать именно через кодирование. То есть сейчас у меня сделано следующим образом:
private string ModelToHex()
{
byte[] data = Encoding.Default.GetBytes(Model);
string result = "";
foreach (byte b in data)
{
result += " 0x" + b.ToString("X2");
}
return result.Trim();
}
private string YearToHex()
{
var dataYear = Convert.ToString(Year, 16);
var result = "";
result += "0x0" + dataYear[0];
result += " 0x" + dataYear[1] + dataYear[2];
return result;
}
private string EngineCapacityToHex()
{
var result = "";
byte[] bytes = BitConverter.GetBytes(EngineCapacity);
if (BitConverter.IsLittleEndian)
{
Array.Reverse(bytes);
}
foreach (byte b in bytes)
{
result += " 0x" + b.ToString("X2");
}
return result;
}
Использовано по факту 3 различных варианта перевода, но во всех трех вручную добавляется "0x" к значению. Необходимо, чтобы это добавлялось автоматически при кодировании, системными методами.