/
dinruspro
/
reference
Обзор
Документация
Войти
/
dinruspro
/
reference
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Convert/main.cpp
48 строк
811 B
EnergonV
Справка по коду перекочевала в репозиторий (наконец-то!)
09 янв 2024, 19:20
09 янв 2024, 19:20
e333663
Код
Авторство
О чём код?
#include <CtrlLib/CtrlLib.h> using namespace Upp; struct ConvertBin : Convert { virtual Value Format(const Value& q) const { return FormatIntBase(q, 2, 0, 0, 0); } virtual Value Scan(const Value& text) const { String txt = text; int r = 0; for(const char *s = txt; *s; s++) if(*s == '1') r = (r << 1) | 1; else if(*s == '0') r <<= 1; return r; } virtual int Filter(int chr) const { return chr == '0' || chr == '1' ? chr : 0; } }; struct App : TopWindow { EditField bin; EditInt dec; App() { SetRect(0, 0, 200, 50); bin.SetConvert(Single<ConvertBin>()); Add(bin.HSizePos().TopPos(0, Ctrl::STDSIZE)); Add(dec.HSizePos().BottomPos(0, Ctrl::STDSIZE)); bin << [=] { dec <<= ~bin; }; dec << [=] { bin <<= ~dec; }; } }; GUI_APP_MAIN { App().Run(); }