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

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

Moderator: haqreu

User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Конвертер между четырмя системами счисления на джаве:

Code: Select all

<applet code=TriCon width=640 height=160>
</applet>

 TriCon.java

Code: Select all

// TriCon.java - Alexander Shabarshin  08-Feb-2006
// See http://ternary.info

import java.applet.*;
import java.awt.*;

public class TriCon extends Applet
{
 TextField text2;
 TextField text3;
 TextField text10;
 TextField text16;
 int number;

 public void init()
 {
  setLayout(new GridLayout(4,2));
  add(new Label("Ternary (N,O,P):"));
  text3 = new TextField(24);
  add(text3);
  add(new Label("Decimal (0-9):"));
  text10 = new TextField(16);
  add(text10);
  add(new Label("Hexadecimal (0-9,A-F):"));
  text16 = new TextField(8);
  add(text16);
  add(new Label("Binary (0,1):"));
  text2 = new TextField(32);
  add(text2);
 }

 public boolean action(Event event, Object object)
 {
  if(text2.equals((TextField)event.target))
  {
    number = Integer.parseInt(text2.getText(),2);
    text3.setText(toTernary(number));
    text10.setText(Integer.toString(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text3.equals((TextField)event.target))
  {
    number = fromTernary(text3.getText());
    text2.setText(Integer.toBinaryString(number));
    text10.setText(Integer.toString(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text10.equals((TextField)event.target))
  {
    number = Integer.parseInt(text10.getText(),10);
    text2.setText(Integer.toBinaryString(number));
    text3.setText(toTernary(number));
    text16.setText(Integer.toHexString(number).toUpperCase());
  }
  if(text16.equals((TextField)event.target))
  {
    number = Integer.parseInt(text16.getText(),16);
    text2.setText(Integer.toBinaryString(number));
    text3.setText(toTernary(number));
    text10.setText(Integer.toString(number));
  }
  return true;
 }

 public static String toTernary(int num)
 {
    int n,m,k;
    String s = null;
    k = 387420489;
    for(int i=0;i<=18;i++)
    {
      n = num/k;
      num -= n*k;
      m = k/2;
      if(num>+m){n++;num-=k;}
      if(num<-m){n--;num+=k;}
      if(n!=0 && s==null) s="";
      if(n==-1) s+="N";
      if(n==0 && s!=null) s+="O";
      if(n==1) s+="P";
      k /= 3;
    } 
    return s;
 }
 
 public static int fromTernary(String s)
 {
    int n = 0;
    int k = 1;
    for(int i=s.length()-1;i>=0;i--)
    {
      char c = s.charAt(i);
      if(c!='N'&&c!='O'&&c!='P') return 0;
      if(c=='N') n-=k;
      if(c=='P') n+=k;
      k *= 3;
    }
    return n;
 }

}

Last edited by Shaos on 21 Sep 2012 10:41, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Адрес апплета на ternary.info:

http://ternary.info/ternary/java.php?applet=2

P.S. Репа с этими и другими исходниками:

https://gitlab.com/ternary/ternary/-/tree/master/obsolete

Результат запуска без браузера: appletviewer TriCon.html
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Хорошая штука!!! Я и сам хотел себе написать - а тут вдруг и есть!!!

Только вот куда нажимать, чтобы вычислять начала? :o
Вводил в разные поля... и Enter нажимал, и мышю - тыкал...
Не вычисляет - нифига... Мож сломалось че? :-?

Странно... а на http://ternary.info/ternary/java.php?applet=2
по Enter работает... :roll:
iLavr
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Дык просто вводишь в нужное поле и жмёшь Enter - оно выводится в разных форматах в другие поля...
Я тут за главного - если что шлите мыло на me собака shaos точка net
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Для полного кайфа нехватает девятиричной :)
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

b2m wrote:Для полного кайфа нехватает девятиричной :)
Ну тогда уж и восьмиричную надо добавить ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Ну тогда уж и восьмиричную надо добавить ;)
Блин... а она была популярна в старых отечественных машинах!...
У меня есть старая документация - там всё пестрит этими 65123о...
Очень тяжело читать с непривычки... :-?



PS. Хмм... "Троичный конвертер на Java"... Ну что бы мы делали
без этой дохлятины Джаббы...
:( (лопата)
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Ну тогда уж и восьмиричную надо добавить ;)
Надо же! Вроде пошутили... а восьмиричную - надо добавить! :o
Этот оригинальный EDUC-8 весь усыпан октальной системой... :(

Я сначала не мог понять - чего этого JAMIESON-а ROWE распёрло на октальную... :-?

Наконец понял - дислей он сподобился сделать октальный! (а точнее - десятичный)
вот у него и hex-числа на дисплей не лезут... :(

Image

Shaos, а нельзя заодно добавить и кнопочку "Вычислить" ?
А то "Enter" в поле ввода не всегда уверенно срабатывает... :-?
iLavr
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Всё можно. Только я это уже не на джаве писать буду, а на JS...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos, я тут в целях совместить полезное с приятным решил добавить
твоему калькулятору GUI и всякие кнопочки, которые мне бы хотелось.

И всё получилось довольно неплохо:
converter2.gif
И даже случился такой бонус, что Java сама приделывает к GUI-окну Status Bar
и пишет в нём по старту: Java Applet Window

Вот только я нигде не нашел, как мне самому что-то вывести полезное в этот Status Bar,
раз уж он есть...
Ты не знаешь, как это делают?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

Метод showStatus("...") вроде как есть у апплета
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:Метод showStatus("...") вроде как есть у апплета
Есть такой метод, это находится быстро... но выводит он в строку статуса броузера.
Я уже попробовал.

А это Status Bar GUI-окна.


P.S. Наверное, в этот Status Bar GUI-окна класса Frame ничего не выводят никак.
Не нашел я таких методов... :-?
Если скомпилировать в автономное GUI-приожение, то, видимо, этого Status Bar
просто не будет.
iLavr
User avatar
Shaos
Admin
Posts: 24020
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

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

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

Post by Lavr »

Shaos wrote:не нравились мне джавовские окна никогда...
А я ещё когда писал «Специалист» на Java, хотел открывать его, как GUI-окно.
Но что-то в тот раз не случилось... А тут решил это попробовать! :wink:

Кстати, если юзать JFrame из JFC/Swing, то окна и вовсе приятные,
причем выглядят своеобразно:
javaNote.gif
Но чего это я раскудахтался? :lol: Джаба скоро помрёт! Всем повторять: помрёт Джабба! :mrgreen:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Lavr wrote: Если скомпилировать в автономное GUI-приожение, то, видимо, этого Status Bar просто не будет.
Да, так и вышло:
noStatus.gif
Видимо, этот Status Bar с надписью Java Applet Window Джаба приделывает
своему GUI-окну, если оно развертывается из страницы браузера.
Наверное, чтобы юзер не пугался - откуда это окно такое всплыло... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr