Троичный конвертер онлайн

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Допилил я этот свой конвертер на Java чисто потому, как нет у меня никаких других инструментов
для работы с троичными кодами и их различными интерпретациями:
convert1.gif
Total Converter for Ternary Research

Самое неприятное, что допиливать во многом пришлось не основную суть программы, а всякие косяки
и несоответствия... :osad:

По ссылке загружается Java jar-файл, подписи у него нет, поскольку у меня нет никаких инструментов
поставить ему подписи - так что всё это на индивидуальный страх и риск. :-?

По идее конвертер должен работать с числами в диапазоне от -2147483648 до 2147483647;
Это весьма много (4-байтное целое со знаком), в троичных схемах таких величин пока нет, поэтому
никаких проверок на превышение этого диапазона я делать не стал.


P.S. Я, конечно, проверял работу конвертера в процессе написания, но всё может быть: программа
новая, как говорится, "альфа-версия", замечания и пожелания - приветствуются...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

В общем, кто попробовал, прислали мне примерно вот такую статистику:
...под Windows 10, запустилось только через Internet Explorer.
Конвертер работает, всё нажимается, считает, размер меняет, чирикает).
Браузер Google Chrome говорит, что нет Java. Но они давно отказались от неё.
Opera также говорит, что нет Java
и даже Microsoft Edge в отказ ушёл.
По моей собственной статистике:
Opera 9.64 - запускает конвертер;
Internet Explorer - запускает конвертер;
K-Meleon - не запускает, и не пишет 'No Java' (ну у него сложные отношения с Java).

В принципе, можно пересобрать в исполняемый .ехе-файл по типу logisim-а,
но пишут, что JRE при этом на компьютере всё равно должна быть...
А если JRE на компьютере есть, то и смысла в .ехе-файле нет, и jar запустится.

Так что кроссплатформенность на платформе Java - запутанная штука... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

AlexanderZh wrote:У меня хромой и ослик пишут "no java".
Значит её нет, java-машины. Либо хромой и ослик такие умные что хотят jar с подписью.
Но это маловероятно... хромой не юзает java принципиально и со своего основания.
Если дело в подписи, то просто есть сообщение об её отсутствии и предложение -
запустить всё как есть на свой страх и риск.

А сборка jar здесь по любому написана с запуском "из HTML-окна".
Если java-машина есть, то всё выглядит вот так:
Start.gif
Хотя, некоторые люди написали мне, что "тыкали по кнопочкам - кнопки не нажимаются!" 8)
Ну что тут поделаешь... у скриншота "кнопки" не нажимаются... :mrgreen:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

AlexanderZh wrote:
Lavr wrote:Если java-машина есть, то всё выглядит вот так:
Вот вместо кнопки и есть "нет жабам" :lol:
Ясное дело, что там написано "No Java!", если я это сам и написал в HTML для ситуации, когда Java не найдена. :wink:
Меня почему и удивило, что K-Meleon - не запускает апплет, но и не пишет 'No Java!'... :roll:
Но потом я прочитал на оффициальном сайте K-Meleon, что та его версия, что у меня установлена,
просто не знает, что такое Java, и как на нее реагировать. :mrgreen:
AlexanderZh wrote:автономные jar апплеты я запускаю на ура.
Этот не автономный, он просто создает свое отдельное окно.
Для автономности его надо переписать с методом main и перекомпилировать.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Кстати, посмотрите, если у Вас на машине есть файл appletviewer.exe,
то всё запустится как есть, безо всяких автономных jar апплетов.

Прямо вот сейчас и посмотрел:
a-viewer.gif
Я когда пишу код на Java то все текущие компиляции смотрю через appletviewer.exe, так быстрее.

Только эти "танцы с бубном" - какая-то кривая кроссплатформенность... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

AlexanderZh wrote:
Lavr wrote:если у Вас на машине есть файл appletviewer.exe
Отсутствует.
Ну тогда, как в анекдоте:"Sorry, Sir..." :wink:

Ну а у кого вдруг присутствует, то через него всё запускается так:
a-viewer_.gif
Либо написать .bat-файл, в котором только первая строчка (я свой назвал a-viewer.bat),
либо Пуск-->Выполнить и вписать эту первую строчку в окно Выполнить, потом - [Enter].

Для справки: appletviewer.exe считается микробраузером, который в любом HTML-файле выполняет только APPLET.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Lavr wrote:
AlexanderZh wrote:автономные jar апплеты я запускаю на ура.
Для автономности его надо переписать с методом main и перекомпилировать.
Перекомпилировал я апплет в автономное Java-приложение: Total Converter for Ternary Research

Я, правда, и сам планировал это сделать, но несколько позже и с применением класса Swing,
по внешнему виду примерно как-то так:
jSwing.gif
Ну дело в общем-то не в красивостях, а в функционале. Раз уж возникла необходимость в связи
с тем, что современные браузеры Java поддерживать фактически перестали... :-?

Но у всего есть оборотная сторона - у автономного Java-приложения нет HELP-a, хотя под него
и зарезервирована кнопочка, называемая сейчас "Exit".
Но дописывать HELP-окно мне сейчас что-то категорчески расхотелось. :osad:

Если Java SE Runtime Environment (JRE) на машине есть, но jar-файл всё-равно не запускается
по двойному клику по нему, я приложил .bat-файл, запускающий Total Converter.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Понадобился мне для троичного ассемблера алгоритм перевода десятичного числа в его
троичное симметричное представление.
И надеялся я, что все нужные алгоритмы у меня есть в этом самом Троичном конвертере на Java...
Но, как всегда некстати, выяснилось, что исходник с комментариями я потерял, когда HDD рухнул. :osad:
А читать декомпилированную Java весьма муторно, легче и быстрее заново написать.

В общем раскопал я вот такой алгоритм, на мой взгляд - весьма удачный:
Перевод числа из десятичной в троичную симметричную систему счисления

Положительное число A можно разделить с остатком на 3 двумя способами

Первый, традиционный: A / 3 = q (остаток r1, 0 <= r1 < 3)
Второй, сдвинутый: A / 3 = q + 1 (остаток r2 = r1 - 3, -3 <= r2 < 0)

Например: 5 / 3 = 1 (остаток 2) или 5 / 3 = 2 (остаток -1)

Берем исходное число и итеративно делим его на 3.
Если число делится нацело, то на выход записываем 0.
Если число не делится нацело, то выбираем тот вариант
(из вышеприведенных), который дает меньший по модулю остаток.
Остаток записываем на выход.

Code: Select all

#include <iostream>
#include <string>

int main() {
  unsigned a = 32;
  std::string s;

  while (a > 0) {
    unsigned q = a / 3; //--- целочисленного деления
    unsigned r = a % 3; //--- возвращает остаток целочисленного деления

    if (r <= 1) {
      s = (char)(r + '0') + s; //---  по сути: r + 30h - код ASCII символа числа r
      a = q;
    }
     else
    {
      r = 3 - r;
      s = '-' + ((char)(r + '0') + s); //---  r + 30h - код ASCII символа числа r
      a = q + 1;
    }
  }

  std::cout << s << std::endl;
}
iLavr
kvas
Novelist
Posts: 39
Joined: 21 Jan 2019 03:36

Re: Троичный конвертер на Java

Post by kvas »

Я прошу прощения, если мои соображения окажутся не к месту, но:
почему-бы не воспользоваться статьёй Рамиля Альвареса Хосе, которую можно взять по адресу
http://www.computer-museum.ru/books/set ... res_02.pdf и не перевести число из десятичной в (10-1)-ичную систему? А уж из девятеричной попарно получать разряды троичной записи.

Этот-же принцип и при переводе из троичной в двоичную/восьмеричную/шестнадцатеричную можно использовать. Либо из троички в четверичную, а затем хоть в двоичную (если один разряд четверичной раскладывать в два) либо в шестнадцатеричную (если два разряда четверичной объединять в один). Ну или из троички, попарно объединяя разряды, получить девятеричную, а потом хоть в восьмеричную, хоть в десятичную перевести.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

kvas wrote:Я прошу прощения, если мои соображения окажутся не к месту,
Совершенно не к месту... :-?
kvas wrote:почему-бы не воспользоваться статьёй Рамиля Альвареса Хосе, которую можно взять по адресу
http://www.computer-museum.ru/books/set ... res_02.pdf и не перевести число из десятичной в (10-1)-ичную систему? А уж из девятеричной попарно получать разряды троичной записи....
Потому что, это как вырезать гланды... автогеном... через ж@пу... ©
iLavr
kvas
Novelist
Posts: 39
Joined: 21 Jan 2019 03:36

Re: Троичный конвертер на Java

Post by kvas »

Lavr wrote:Потому что, это как вырезать гланды... автогеном... через ж@пу... ©
...а вот иностранцы в анекдоте по ссылке приняли такой подход за признак мастерства :)

Однако, если вернуться к теме перевода в троичную симметричную систему счисления, то вот по этой ссылке предлагают алгоритм и функцию, работающие для любых симметричных СС, и приводят образец её вызова для троичной и пятеричной СС.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

kvas wrote:..а вот иностранцы в анекдоте по ссылке приняли такой подход за признак мастерства :)
На то они и иностранцы... но если вас устраивает такой "признак мастерства" - то мне тоже не жалко... :mrgreen:
kvas wrote:Однако, если вернуться к теме перевода в троичную симметричную систему счисления, то вот по этой ссылке предлагают алгоритм и функцию, работающие для любых симметричных СС, и приводят образец её вызова для троичной и пятеричной СС.
...если вернуться к теме, то поскольку вы предлагаете какие-то алгоритмы ЗДЕСЬ, то не поленитесь,
проверьте их на C++ или C и выложите в этот форум работоспособный вариант.
У посетителей будет возможность сравнить, какой алгоритм лучше, быстрее или компактнее.

Алгоритмов в сети много, многие я просмотрел, но пришел к выводу, что тот, который я запостил
выше, наиболее краток и быстр в данной конкретной ситуации.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Lavr wrote:Допилил я этот свой конвертер на Java чисто потому, как нет у меня никаких других инструментов
для работы с троичными кодами и их различными интерпретациями: ...
Понадобился мне такой конвертер, а Java я больше не держу на компьютере... :-?
Искал я, искал что-то похожее, нашел только вот это: http://trinary.su/projects/translator/,
но как-то мне оно не очень помогло... :-?

И по пути наткнулся на один ресурс, где клятвенно (но на английском :wink: ) обещали конвертнуть
работающий *.jar в исполнимый *.exe, причём онлайн! :o
Я, хоть и знаю, что чудес не бывает, чисто от безвыходности на это купился... :wink:

Ну... не обманули! :lol: Создали мне TConvert.exe ! :roll:
Вот только выяснилось, что ему всё равно для работы нужна Java JRE... пришлось поставить... :neutral:
Tc.PNG
Но если на машине уже установлена Java JRE, то никакой TConvert.exe уже и не нужен... :D
Всё и без него работает:

Code: Select all

start "C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe" -jar "C:\TEMP\TConvert.jar" %*
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный конвертер на Java

Post by Shaos »

Советую проверить машину на наличие троянчегов и всякого рода вирусни :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный конвертер на Java

Post by Lavr »

Shaos wrote:Советую проверить машину на наличие троянчегов и всякого рода вирусни :mrgreen:
Ты это советуешь ровно столько, сколько я тебя тут знаю... мне мог бы и не советовать. :-?
Как говорил покойный ныне Зигмунд Фрейд:"Иногда сигара - это просто сигара..." :lol:

P.S. Но чтобы Shaos спал спокойно и не переживал за меня, я эту проверку повторно сделал: :roll:
TConv.PNG
Кстати говоря, я тут намедни прочитал ряд статей на тему: почему всё же от Java отказались в браузерах.
Пишут, что Java - самая трудноустранимая дыра в них, поэтому Javу и уволили...
Может мне всю Java-машину от Оракли на наличие троянчегов и всякого рода вирусни проверить?
:ebiggrin:
You do not have the required permissions to view the files attached to this post.
iLavr