Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Конвертер между четырмя системами счисления на джаве: TriCon.java | | | | Code: // 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.
|
08 Feb 2006 22:04 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Адрес апплета на ternary.info: http://ternary.info/ternary/java.php?applet=2P.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.
|
08 Feb 2006 22:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Хорошая штука!!! Я и сам хотел себе написать - а тут вдруг и есть!!!
Только вот куда нажимать, чтобы вычислять начала?
Вводил в разные поля... и Enter нажимал, и мышю - тыкал...
Не вычисляет - нифига... Мож сломалось че?
Странно... а на http://ternary.info/ternary/java.php?applet=2
по Enter работает...
_________________ iLavr
|
22 Sep 2012 16:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Дык просто вводишь в нужное поле и жмёшь Enter - оно выводится в разных форматах в другие поля...
|
22 Sep 2012 17:02 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 892
|
Для полного кайфа нехватает девятиричной
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Sep 2012 03:14 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Ну тогда уж и восьмиричную надо добавить
|
23 Sep 2012 08:35 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Блин... а она была популярна в старых отечественных машинах!...
У меня есть старая документация - там всё пестрит этими 65123о...
Очень тяжело читать с непривычки...
PS. Хмм... "Троичный конвертер на Java"... Ну что бы мы делали без этой дохлятины Джаббы... (лопата)
_________________ iLavr
|
23 Sep 2012 09:27 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Надо же! Вроде пошутили... а восьмиричную - надо добавить!
Этот оригинальный EDUC-8 весь усыпан октальной системой...
Я сначала не мог понять - чего этого JAMIESON-а ROWE распёрло на октальную...
Наконец понял - дислей он сподобился сделать октальный! (а точнее - десятичный)
вот у него и hex-числа на дисплей не лезут...
Shaos, а нельзя заодно добавить и кнопочку " Вычислить" ?
А то " Enter" в поле ввода не всегда уверенно срабатывает...
_________________ iLavr
|
08 Oct 2012 20:58 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Всё можно. Только я это уже не на джаве писать буду, а на JS...
|
08 Oct 2012 21:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Shaos, я тут в целях совместить полезное с приятным решил добавить твоему калькулятору GUI и всякие кнопочки, которые мне бы хотелось. И всё получилось довольно неплохо: И даже случился такой бонус, что 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
|
01 Dec 2017 17:21 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
Метод showStatus("...") вроде как есть у апплета
|
01 Dec 2017 17:25 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Есть такой метод, это находится быстро... но выводит он в строку статуса броузера. Я уже попробовал. А это Status Bar GUI-окна. P.S. Наверное, в этот Status Bar GUI-окна класса Frame ничего не выводят никак. Не нашел я таких методов... Если скомпилировать в автономное GUI-приожение, то, видимо, этого Status Bar просто не будет.
_________________ iLavr
|
01 Dec 2017 17:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23399 Location: Silicon Valley
|
да - для окна незнаю как не нравились мне джавовские окна никогда...
|
01 Dec 2017 18:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А я ещё когда писал «Специалист» на Java, хотел открывать его, как GUI-окно. Но что-то в тот раз не случилось... А тут решил это попробовать! Кстати, если юзать JFrame из JFC/Swing, то окна и вовсе приятные, причем выглядят своеобразно: Но чего это я раскудахтался? Джаба скоро помрёт! Всем повторять: помрёт Джабба!
You do not have the required permissions to view the files attached to this post.
_________________ iLavr
|
01 Dec 2017 18:48 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да, так и вышло: Видимо, этот Status Bar с надписью Java Applet Window Джаба приделывает своему GUI-окну, если оно развертывается из страницы браузера. Наверное, чтобы юзер не пугался - откуда это окно такое всплыло...
You do not have the required permissions to view the files attached to this post.
_________________ iLavr
|
02 Dec 2017 04:04 |
|