C# Десятичное число в шестнадцатиричное
Есть число десятичное 13420149, если использовать калькулятор windows, то это число ССС675. Как мне из десятичного числа, программным методом получить массив типа:
Для передачи в дальнейшую функцию
public static void GetBytesInt32( int argument )
{
byte[ ] byteArray = BitConverter.GetBytes( argument );
Console.WriteLine( formatter, argument,
BitConverter.ToString( byteArray ) );
}
Как бы не очень понятно. Попытаюсь включить моск :)
byte[] data = BitConverter.GetBytes(a);
получаю следующее: byte[0]=117;byte[1]=198;byte[2]=204;byte[3]=0;
да, оно соответствует, но хотелось бы в шестнадцатиричном виде.
Хотя за это уже спасибо. Осталось понять, как объединить этот массив, с другим массивом :) Но это уже другой вопрос.
byte[] data = BitConverter.GetBytes(a);
Array.Reverse(data);
string hex = BitConverter.ToString(data).TrimStart(new char[] { '0', '-' });
MessageBox.Show(hex);
int, byte, long - это числа в памяти компьютера. А числа в ней находятся исключительно в двоичной системе счисления. Всяческие десятичные и шестнадцатеричные представления получаются путем конвертирования этого числа в строку и отображения её на экране. Включите мозг.
напечатает num в 16ричной системе
напечатает num в 16ричной системе
Это наверно в каком-то другом языке, отличном от C#.
string hex1 = x.ToString("X");
string hex2 = string.Format("0x{0:X}");
Console.WriteLine("0x{0:X}", x);
string hex1 = x.ToString("X");
string hex2 = string.Format("0x{0:X}");
Console.WriteLine("0x{0:X}", x);
Тут спасибо за помощь. Я еще хочу уточнить один момент.
Получаю я строку:
DST_ADDRESS = "3456";
раскладываю ее таким образом:
string DST_ADD_LF = DST_ADDRESS.Substring(0, 2);
string DST_ADD_RT = DST_ADDRESS.Substring(2);
результат у меня
DST_ADD_LF = "34"
DST_ADD_RT = "56"
А теперь мне нужно представить это в шестнадцатиричном виде:
byte dal = 0x34;
byte dar = 0x56;
Думал сделать таким образом:
string DST_ADD_LF = hex + DST_ADDRESS.Substring(0, 2);
string DST_ADD_RT = hex + DST_ADDRESS.Substring(2);
int D_A_L = Convert.ToInt32(DST_ADD_LF); //тут я получаю сообщение о некорректном формате строки.
int D_A_R = Convert.ToInt32(DST_ADD_RT);// тут в принципе тоже самое
Как это сделать я не понимаю пока что.
В кратце поясню суть. Пользователь записывает значение DST_ADDRESS, в форме (textbox). А я получив это значение должен преобразовать его для дальнейшей обработки в цифровом формате шестнадцатиричной строкой.
Вообще, как написал hardcase выше, представление не суть. Главное, то, что пользователь пишет строку, а я должен понимать, что это строка, есть шестнадцатиричное значение и соотвественно преобразовать его.