|
|
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, или поделитесь ссылкой на алгоритм для быстрого перехода от одного основания к другому. Желательно при это не использовать промежуточные десятичные значения. Основание может быть любым от 2 до 256 (каждая цифра кодируется одним байтом). -------------- Festina lente ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 13:08:28 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Быстрый переход существует только для кратных систем, таких как двоичная <-> восьмеричная <-> шестнадцатиричная. В этом случае группа разрядов одной системы отображается в частичные группы другой системы. Или троичная <-> девятиричная. Вообще вопрос безсмысленнен, пока не будет известно о ВНУТРЕННЕМ представлении числа в вычислительном программно-аппаратном комплексе (некоторые могут использовать символьную арифметику). Именно от него следует отталкиваться в вопросах оптимизации. В вашем случае, мы имеем скорее всего символьное (строковое) представление числа с основанием от 2 до 256. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 14:42:36 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
mayton, меня интересует универсальный алгоритм. Насчет внутреннего представление: число хранится как массив байт. Каждый байт означает цифру числа. При этом основание системы является дополнительным параметром. То есть, число 255 в десятичной системе хранится как [0x02, 0x05, 0x05]. После перевода в 256-ричную систему оно будет иметь вид [0xFF]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 15:13:41 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozok wrote: > Подскажите, пожалуйста, или поделитесь ссылкой на алгоритм для быстрого > перехода от одного основания к другому. А чем тебе алгоритм с делением и остатками не устаивает по производительности ? > Желательно при это не использовать промежуточные десятичные значения. Так оно штатно и не должно использоваться. Напрямую всегда производится перевод. > Основание может быть любым от 2 до 256 (каждая цифра кодируется одним > байтом). Какое основание -- вообще не важно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 15:49:08 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozokменя интересует универсальный алгоритм. Универсальный алгоритм - это боян, который тыщу раз описан в учебниках информатики. Ты очевидно не можешь разобраться с каким-то пустяком типа выделения символов (разрядов) в массиве байтов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 15:55:03 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
MasterZiv А чем тебе алгоритм с делением и остатками не устаивает по производительности ? На нем, родимом, и остановился. Хотелось узнать, существуют ли какие-либо более быстрые альтернативы делению в столбик :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 16:32:53 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Умножение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 16:47:45 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozok wrote: > На нем, родимом, и остановился. Хотелось узнать, существуют ли какие-либо > более быстрые альтернативы делению в столбик :). А чем этот-то не устраивает ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 19:17:05 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Люблю, когда есть выбор :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 20:04:43 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
MozokЛюблю, когда есть выбор :). Алгоритм определения остатка от деления длинного целого числа в общем случае принципиально неупрощается и не поддаётся оптимизации. На этом (и в частности на сложности факторизации) строится вся криптография. Но если вы найдете какую-то рационализацию (или частные случаи) - то я с интересом готов послушать. Меня эта тема всегда интриговала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2010, 20:52:29 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
MozokПосле перевода в 256-ричную систему оно будет иметь вид [0xFF]. А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 09:13:02 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
А где тут деление длинных чисел? На самом деле здесь именно умножение по новому основанию. А деление исходного числа по старому основанию - операция простейшая - выделение разряда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 09:27:06 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
__Avenger__ А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-) Еще раз внимательно почитайте пост, где я описываю внутреннее представление чисел. ------------------------------А где тут деление длинных чисел? На самом деле здесь именно умножение по новому основанию. А деление исходного числа по старому основанию - операция простейшая - выделение разряда. А где тут умножение по новому основанию? Разряды в описанном мной представление уже выделены. Для перехода к новому основанию используется деление исходного числа на новое основание и вычисление остатков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 10:25:11 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Очевидно гест имеет в виду операции "по модулю". Они используются в криптографии. Его мысль верна но кажется имеется еще что-то недосказанное к данному сабж. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 11:07:31 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Зачем формировать число из представления по старому основанию, чтобы затем декодировать его по новому? Нужно сразу формировать число по новому основанию. Никаких делений не будет. Что ты уперся в вариант с делениями. Он нужен если у тебя уже есть число во внутреннем представлениии. А у тебя еге нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 12:27:29 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozok__Avenger__ А я думал 0xFF - это 255 в 16-ричной системе счисления. Я знал, что я ошибался ;-) А тогда в 16-ричной системе как число 255 будет представлено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 12:30:50 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
-------------------------------- Что ты уперся в вариант с делениями. Он нужен если у тебя уже есть число во внутреннем представлениии. А у тебя еге нет У меня исходные данные - это числа уже во внутреннем представлении относительно какой-то системы. __Avenger__А тогда в 16-ричной системе как число 255 будет представлено? [0x0F, 0x0F]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 13:11:22 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozokmayton, меня интересует универсальный алгоритм. Насчет внутреннего представление: число хранится как массив байт. Каждый байт означает цифру числа. При этом основание системы является дополнительным параметром. То есть, число 255 в десятичной системе хранится как [0x02, 0x05, 0x05]. После перевода в 256-ричную систему оно будет иметь вид [0xFF]. Что это за бред? Десятичная система счисления требует 10 знаков для записи чисел : от 0 до 9 255-ричная потребует соответственно 255 знаков (символов) т.е FF в этом случае (число записанное в 255-ричной системе) должно означать 255*F+(255*255)*F число 255 (десятичное) в 255-ричной системе должно выглядеть как 10 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 13:23:12 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Mozok, Guest. Мы ходим по кругу. Как-бы мы не реализовывали автомат трансляции одной системы в другую (на символьной арифметике или еще на бог весть какой), мы зацепим небольшой участок вычислений в двоичной системе (таковы условия) и поэтому не вижу смысла как-то особо шарахаться этой особенности. Надо наоборот получить с неё какие-то бенефиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 13:26:34 |
|
||
|
Смена основания системы счисления.
|
|||
|---|---|---|---|
|
#18+
Gwa 255-ричная потребует соответственно 255 знаков (символов) т.е FF в этом случае (число записанное в 255-ричной системе) должно означать 255*F+(255*255)*F 0xFF не может быть 255-ричной системе. Gwa число 255 (десятичное) в 255-ричной системе должно выглядеть как 10 Точнее, как [0x01, 0x00]. А в 256-ричной - [0xFF]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 14:47:41 |
|
||
|
|

start [/forum/search_topic.php?author=jurajura&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
7ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
106ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 1111ms |
| total: | 1368ms |

| 0 / 0 |
