Как я могу преобразовать следующее?
2934 (целое число) - B76 (шестнадцатеричное)
Позвольте мне объяснить, что я пытаюсь сделать. У меня есть идентификаторы пользователей в моей базе данных, которые хранятся в виде целых чисел. Вместо того, чтобы пользователи ссылались на свои идентификаторы, я хочу позволить им использовать шестнадцатеричное значение. Основная причина в том, что он короче.
Так что мне нужно не только перейти от целого числа к шестнадцатеричному, но и перейти от шестнадцатеричного к целому.
Есть ли простой способ сделать это в C #?
c#
hex
type-conversion
codette
источник
источник
Integer
сокращение реализации? Если единственная цель состоит в том, чтобы сделать идентификатор пользователя как можно короче, мне было бы интересно узнать, есть ли какая-либо другая очевидная причина, по которой вам конкретно требуется шестнадцатеричное преобразование - если, конечно, я его не пропустил. Понятно ли и известно (если это необходимо), что идентификаторы пользователей на самом деле представляют собой шестнадцатеричное представление реального значения?Ответы:
с http://www.geekpedia.com/KB8_How-do-I-convert-from-decimal-to-hex-and-hex-to-decimal.html
источник
Использование:
Посмотрите, Как: Преобразовать между шестнадцатеричными строками и числовыми типами (Руководство по программированию в C #) для получения дополнительной информации и примеров.
источник
Попробуйте следующее, чтобы преобразовать его в гекс
И обратно
источник
источник
Я действительно подвергаю сомнению ценность этого, все же. Вы заявили, что цель состоит в том, чтобы сделать ценность короче, что она и сделает, но это не самоцель. Вы действительно имеете в виду либо облегчить запоминание, либо набрать текст.
Если вы имеете в виду легче запомнить, то вы делаете шаг назад. Мы знаем, что это все тот же размер, просто закодированный по-разному. Но ваши пользователи не будут знать, что буквы ограничены «A-F», и поэтому идентификатор будет занимать для них такое же концептуальное пространство, как если бы была разрешена буква «AZ». Таким образом, вместо того, чтобы запоминать номер телефона, это больше похоже на запоминание GUID (эквивалентной длины).
Если вы хотите печатать, вместо того, чтобы использовать клавиатуру, пользователь теперь должен использовать основную часть клавиатуры. Скорее всего, будет труднее набирать текст, потому что это не будет словом, которое распознают их пальцы.
Гораздо лучший вариант - позволить им выбрать настоящее имя пользователя.
источник
К хексу:
Для int:
источник
Я создал свое собственное решение для преобразования int в шестнадцатеричную строку и обратно, прежде чем нашел этот ответ. Не удивительно, что это значительно быстрее, чем решение .net, так как меньше накладных расходов на код.
Сроки код:
Результаты:
источник
NET FRAMEWORK
ПАСКАЛЬ >> C #
Что-то из старой школы очень старая процедура паскаля, преобразованная в C #
источник
Выведите целое число в шестнадцатеричном значении с добавлением нуля (при необходимости):
https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros
источник
int в hex:
шестнадцатеричное в int:
источник