Конвертировать double в hex в C #

У меня есть это значение:

double headingAngle = 135.34375;

Я хотел бы преобразовать его в HEX и распечатать HEX на консоли. Я уже конвертировал строку и int в их соответствующие значения HEX, но double кажется более хитрым. Может ли кто-нибудь указать мне правильное направление?

16
задан Uwe Keim 31 January 2017 в 13:34
поделиться

2 ответа

Ну я погуглил минуту-другую и согласно это вот довольно изящное решение

    double d = 12.09;
    Console.WriteLine("Double value: " + d.ToString());
    byte[] bytes = BitConverter.GetBytes(d);
    Console.WriteLine("Byte array value:");
    Console.WriteLine(BitConverter.ToString(bytes));
12
ответ дан 30 November 2019 в 22:09
поделиться

Можно преобразовать число с основанием 10 в число 16, непрерывно умножая дробь на 16, удаляя «целое» число и повторяя с остатком.

Итак, чтобы преобразовать десятичное число 0,1 в шестнадцатеричное число,

0.1 * 16
= 1.6

Итак, 1 становится первым шестнадцатеричным значением. Продолжайте с оставшимися 0,6

0.6 * 16 = 9.6

Таким образом, 9 становится вторым шестнадцатеричным значением. Продолжаем с оставшимися 0.6

0.6 * 16 = 9.6

и т.д.

Итак, 0,1 Десятичное = 0,19999.. повторяющееся шестнадцатеричное число

По памяти это работает для любой системы счисления. Очевидно, что в шестнадцатеричном формате целое значение 10 будет равно A и т. д.

4
ответ дан 30 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: