Как вы конвертируете между шестнадцатеричными числами и десятичными числами в C #?
c#
hex
type-conversion
decimal
Энди МакКлагжаг
источник
источник
int.Parse
не имеет возможности указать базу какint
, так же как один из немногих действительныхNumberStyles
. Для базы 16 либо хорошо, но как общее решение, хорошо знать, как работают оба.Шестнадцатеричный -> десятичный:
Десятичный -> шестнадцатеричный
источник
Convert.ToInt64(hexValue, 16);
что он будет выполнять преобразование, если0x
префикс есть или нет, в то время как некоторые другие решения не будут.Похоже, вы можете сказать
чтобы получить десятичную от шестнадцатеричной.
И наоборот:
источник
Если вам нужна максимальная производительность при преобразовании из шестнадцатеричного в десятичное число, вы можете использовать подход с предварительно заполненной таблицей шестнадцатеричных значений.
Вот код, который иллюстрирует эту идею. Мои тесты производительности показали, что он может быть на 20-40% быстрее, чем Convert.ToInt32 (...):
источник
Из Geekpedia :
источник
источник
Преобразование шестнадцатеричного в десятичное
Десятичное в шестнадцатеричное преобразование
Для более подробной информации проверьте эту статью
источник
источник
Это на самом деле не самый простой способ, но этот исходный код позволяет вам исправить любые типы восьмеричных чисел, например, 23,214, 23 и 0,512 и так далее. Надеюсь, что это поможет вам..
источник
Попробуйте использовать BigNumber в C # - представляет произвольно большое целое число со знаком.
программа
Вывод
Возможные исключения,
ArgumentNullException - значение является нулем.
FormatException - значение не в правильном формате.
Вывод
Вы можете преобразовать строку и сохранить значение в BigNumber без ограничений на размер числа, если строка не пуста и не содержит аналфабетов.
источник
Если это действительно большая шестнадцатеричная строка, выходящая за рамки обычного целого числа:
Для .NET 3.5 мы можем использовать класс BigInteger BouncyCastle:
.NET 4.0 имеет класс BigInteger .
источник
Моя версия мне кажется немного более понятной, потому что мои знания C # не так высоки. Я использую этот алгоритм: http://easyguyevo.hubpages.com/hub/Convert-Hex-to-Decimal (Пример 2)
источник
Преобразовать двоичный код в шестнадцатеричный
источник
Метод расширения для преобразования байтового массива в шестнадцатеричное представление. Это дополняет каждый байт ведущими нулями.
источник
Вот моя функция:
источник
Convert
метода расширения, чтобы можно было написать:int hexa = Convert.ToHexadecimal(11);
=)Мое решение немного похоже на основы, но оно работает без использования встроенных функций для преобразования между системами счисления.
источник
источник