Преобразование hex в dec

Вначале исходное восьмеричное число раскладывается по позициям — смотри начало темы. Позиции нумеруются справа налево, начиная с нулевой. Для каждой позиции отыскивается по таблице N 3 соответствующее десятичное значение. Затем находится сумма всех, полученных для каждой десятичной позиции десятичных значений. Эта сумма и есть искомое десятичное число, соответствующее исходному восьмеричному числу. Например:

OCT — 7502 = 7502 = 7*8^3+5*8^2+0*8^1+2*8^0 = 3582+320+0+2 = 3906 – DEC

Преобразование DEC — OCT

Производится целочисленным последовательным делением деся­тичного числа на основание восьмеричной систему счисления — 8. После каждого деления, результат, больший 7, вновь делится на 8. После завершения всех делений, остатки считываются в обратном по­рядке, т.е. вначале записывается остаток от последнего деления, затем предыдущий и т.д., последним записывается остаток от перво­го деления.

Например : DEC — 1365 8 = 2525 – OCT

Преобразование BIN — DEC

Вначале двоичное число преобразуется в восьмеричное — смотри преобразование BIN-OCT, а затем полученное восьмеричное число преобразуется в десятичное — смотри преобразование OCT-DEC. Например:

BIN — 11101110111110 = 35676 — OCT — 3*8^4+5+8^3+6*8^2+7*8^1+6*8^0 = 12288+2560+384+56+6=15294

Преобразование DEC — BIN

Вначале десятичное число преобразуется в восьмеричное — смотри преобразование DEC-OCT, а затем полученное восьмеричное число преобразуется в двоичное — смотри преобразование OCT-BIN. Например:

DEC – 64536 8 = 176030 – OCT – 1111110000011000 – BIN

-48 0067 -8 126 8

56 -64 20 -8 15 8

Преобразование HEX — DEC

Можно выполнить в три этапа: в начале исходное восьмеричное число преобразуется в двоичное — смотри преобразование HEX-BIN, затем полученное двоичное число преобразуется в соответствующее ему восьмеричное число — смотри преобразование BIN-OCT, и наконец, полученное восьмеричное число преобразуется в десятичное — смотри преобразование OCT-DEC.

Преобразование DEC – HEX

Читайте также  Прижать футер к низу страницы css flex

Можно выполнить в три этапа : вначале исходное десятичное число преобразуется в соответствующее ему восьмеричное число – смотри преобразование DEC-OCT, затем полученное восьмеричное число преобразуется в двоичное — -смотри преобразование OCT-BIN, и наконец полученное двоичное число в шестнадцатеричное – смотри преобразование BIN-HEX.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9507 — | 7341 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Как преобразовать следующее?

2934 (целое число) в B76 (hex)

Позвольте мне объяснить, что я пытаюсь сделать. У меня есть идентификаторы пользователей в моей базе данных, которые хранятся как целые числа. Вместо того, чтобы пользователи ссылались на свои идентификаторы, я хочу, чтобы они использовали шестнадцатеричное значение. Основная причина заключается в том, что она короче.

Поэтому мне нужно не только перейти от целого к шестнадцатеричному, но мне также нужно перейти от шестнадцатеричного к целому.

Есть ли простой способ сделать это в C #?

10 ответов

Я создал собственное решение для преобразования int в шестнадцатеричную строку и обратно, прежде чем нашел этот ответ. Неудивительно, что это значительно быстрее, чем решение .net, поскольку накладные расходы меньше.

Я действительно сомневаюсь в ценности этого. Вы заявляете, что цель состоит в том, чтобы сделать значение короче, чем оно будет, но это не самоцель. Вы действительно имеете в виду либо облегчить запоминание, либо легче набрать.

Если вы имеете в виду легче запомнить, то вы делаете шаг назад. Мы знаем, что он все тот же размер, просто закодирован по-разному. Но ваши пользователи не будут знать, что буквы ограничены «A-F», поэтому идентификатор будет занимать для них одинаковое концептуальное пространство, как если бы была разрешена буква «A-Z». Поэтому вместо того, чтобы запоминать номер телефона, это больше похоже на запоминание GUID (эквивалентной длины).

Читайте также  Промокоды дочки сыночки 2017

Если вы имеете в виду ввод, вместо того, чтобы использовать клавиатуру, пользователь должен теперь использовать основную часть клавиатуры. Скорее всего, будет сложнее напечатать, потому что это не будет слово, которое распознают их пальцы.

Гораздо лучший вариант — фактически позволить им выбрать настоящее имя пользователя.

После обсуждения алгоритмов поиска цифр в строке возникла идея рассмотреть в том же ключе какие-нибудь другие задачи. Подходящей показалась задача преобразования целого числа из 16-ричной системы в десятичную: не очень громоздкая, с по меньшей мере одним очевидным алгоритмом и, может быть, многими неочевидными, и понятная.

Дана строка, содержащая целое неотрицательное число в 16-ричной системе. Число записано цифрами 0..9A..F (буквы — только большие), гарантируется, что символов, не являющихся цифрами, в строке нет. Требуется получить строку, содержащую десятичную запись такого числа. Длина входной строки не превосходит 100000 байт.

Пишите решения на любых языках — самые красивые, самые короткие, самые эффективные… Для решений на машине Тьюринга предлагаю использовать только символы «пробел, 0, 1» (новых не вводить), а цифры входа и выхода записывать четверками битов (разделенные пробелами или нет — на ваше усмотрение). На Brainfuck — входная строка должна вводиться, а выходная — печататься.

UPD. Использовать встроенный или библиотечный BigNum, конечно, хорошо, но как-то не очень интересно. Давайте обходиться без него!

Для затравки — решение на C# (которое нельзя назвать ни красивым, ни коротким, ни эффективным):

Ссылка на основную публикацию
Adblock
detector