powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Смена основания системы счисления.
20 сообщений из 20, страница 1 из 1
Смена основания системы счисления.
    #36592233
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, или поделитесь ссылкой на алгоритм для быстрого перехода от одного основания к другому.
Желательно при это не использовать промежуточные десятичные значения.
Основание может быть любым от 2 до 256 (каждая цифра кодируется одним байтом).
--------------
Festina lente
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592462
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстрый переход существует только для кратных систем, таких как двоичная <-> восьмеричная <-> шестнадцатиричная. В этом случае группа разрядов одной системы отображается в частичные группы другой системы. Или троичная <-> девятиричная. Вообще вопрос безсмысленнен, пока не будет известно о ВНУТРЕННЕМ представлении числа в вычислительном программно-аппаратном комплексе (некоторые могут использовать символьную арифметику). Именно от него следует отталкиваться в вопросах оптимизации. В вашем случае, мы имеем скорее всего символьное (строковое) представление числа с основанием от 2 до 256.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592548
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

меня интересует универсальный алгоритм. Насчет внутреннего представление:
число хранится как массив байт. Каждый байт означает цифру числа.
При этом основание системы является дополнительным параметром.
То есть, число 255 в десятичной системе хранится как [0x02, 0x05, 0x05]. После перевода в 256-ричную систему
оно будет иметь вид [0xFF].
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592669
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok wrote:
> Подскажите, пожалуйста, или поделитесь ссылкой на алгоритм для быстрого
> перехода от одного основания к другому.

А чем тебе алгоритм с делением и остатками не устаивает по производительности ?

> Желательно при это не использовать промежуточные десятичные значения.

Так оно штатно и не должно использоваться. Напрямую всегда производится перевод.

> Основание может быть любым от 2 до 256 (каждая цифра кодируется одним
> байтом).

Какое основание -- вообще не важно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592681
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozokменя интересует универсальный алгоритм.
Универсальный алгоритм - это боян, который тыщу раз описан в учебниках информатики. Ты очевидно не можешь разобраться с каким-то пустяком типа выделения символов (разрядов) в массиве байтов.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592801
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
А чем тебе алгоритм с делением и остатками не устаивает по производительности ?

На нем, родимом, и остановился. Хотелось узнать, существуют ли какие-либо
более быстрые альтернативы делению в столбик :).
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36592854
Умножение?
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36593263
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok wrote:
> На нем, родимом, и остановился. Хотелось узнать, существуют ли какие-либо
> более быстрые альтернативы делению в столбик :).

А чем этот-то не устраивает ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36593363
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Люблю, когда есть выбор :).
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36593406
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokЛюблю, когда есть выбор :).
Алгоритм определения остатка от деления длинного целого числа в общем случае принципиально неупрощается и не поддаётся оптимизации. На этом (и в частности на сложности факторизации) строится вся криптография. Но если вы найдете какую-то рационализацию (или частные случаи) - то я с интересом готов послушать. Меня эта тема всегда интриговала.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36593862
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozokПосле перевода в 256-ричную систему
оно будет иметь вид [0xFF].

А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-)
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36593888
А где тут деление длинных чисел?

На самом деле здесь именно умножение по новому основанию.
А деление исходного числа по старому основанию - операция простейшая - выделение разряда.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594015
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Avenger__
А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-)
Еще раз внимательно почитайте пост, где я описываю внутреннее представление чисел.
------------------------------А где тут деление длинных чисел?

На самом деле здесь именно умножение по новому основанию.
А деление исходного числа по старому основанию - операция простейшая - выделение разряда.
А где тут умножение по новому основанию? Разряды в описанном мной представление уже выделены.
Для перехода к новому основанию используется деление исходного числа на новое основание и вычисление остатков.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594133
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очевидно гест имеет в виду операции "по модулю". Они используются в криптографии. Его мысль верна но кажется имеется еще что-то недосказанное к данному сабж.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594398
Зачем формировать число из представления по старому основанию,
чтобы затем декодировать его по новому?

Нужно сразу формировать число по новому основанию.
Никаких делений не будет.

Что ты уперся в вариант с делениями. Он нужен если у тебя уже есть число во внутреннем представлениии. А у тебя еге нет
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594410
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok__Avenger__
А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-)

А тогда в 16-ричной системе как число 255 будет представлено?
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594548
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--------------------------------
Что ты уперся в вариант с делениями. Он нужен если у тебя уже есть число во внутреннем представлениии. А у тебя еге нет
У меня исходные данные - это числа уже во внутреннем представлении относительно какой-то системы.
__Avenger__А тогда в 16-ричной системе как число 255 будет представлено?
[0x0F, 0x0F].
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594597
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozokmayton,

меня интересует универсальный алгоритм. Насчет внутреннего представление:
число хранится как массив байт. Каждый байт означает цифру числа.
При этом основание системы является дополнительным параметром.
То есть, число 255 в десятичной системе хранится как [0x02, 0x05, 0x05]. После перевода в 256-ричную систему
оно будет иметь вид [0xFF].

Что это за бред?
Десятичная система счисления требует 10 знаков для записи чисел : от 0 до 9

255-ричная потребует соответственно 255 знаков (символов)
т.е FF в этом случае (число записанное в 255-ричной системе)
должно означать 255*F+(255*255)*F

число 255 (десятичное) в 255-ричной системе должно выглядеть как 10
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594610
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok, Guest.

Мы ходим по кругу. Как-бы мы не реализовывали автомат трансляции одной системы в другую (на символьной арифметике или еще на бог весть какой), мы зацепим небольшой участок вычислений в двоичной системе (таковы условия) и поэтому не вижу смысла как-то особо шарахаться этой особенности. Надо наоборот получить с неё какие-то бенефиты.
...
Рейтинг: 0 / 0
Смена основания системы счисления.
    #36594898
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gwa
255-ричная потребует соответственно 255 знаков (символов)
т.е FF в этом случае (число записанное в 255-ричной системе)
должно означать 255*F+(255*255)*F

0xFF не может быть 255-ричной системе.
Gwa
число 255 (десятичное) в 255-ричной системе должно выглядеть как 10

Точнее, как [0x01, 0x00]. А в 256-ричной - [0xFF].
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Смена основания системы счисления.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]