# my2b3e **Repository Path**: zzchinahebei/my2b3e ## Basic Information - **Project Name**: my2b3e - **Description**: 2b3e ,一种数据格式 文件格式。 编程 IDE 可以用。 这样是2b并显示: mystr "hello world" utf_8 String 11111 00000000000 222222222222 这是2b串显示: m1y1s1t1r1h0e0l0l0o0 0w0o0r0l0d0u2t2f2_282 2S2t2r2i2n2g2 当然,先做个记事本。支持2b3e格式。录入显示。(按钮 ,能实现 2b串显示 或 2b并显示) 未来一个网站首页,可以是Index.2b3e文件 它2b3e脚本,可以替代asp html. jsp. vbscript xml 做互联网脚本。 解释器很容易做。 2b是 两个字节配对。3e是三元素 :名称 类型 值 这个2b3e程序, 是一种信息完备的数据库。几乎不需编译 传统语语言的。字符串引号 转义符号 在2b3e语言是不必要的。 2b3e格式,能够 不依赖引号 不依赖转义 无忧虑 装载字符串。 2b3e格式,能够 不依赖引号 不依赖转义 无忧虑 装载 任意原态字节数组。 ... - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-01-22 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # my2b3e #### 介绍 ![输入图片说明](logo_2b3e.jpg) ----------------------- 2b3e ,一种数据存储格式 文件格式。 编程 IDE 可以用。函数参数可用,main启动参数可用。bat shell promt可用。 2b是 两个字节配对。3e是三元素 :名称 值 类型 (2026 04 07思考,类型可以 0x00 0x?? 可以提高效率,0x??表示256个已知的类型:0x00 le_ba_int ; 0x01 le_ba_long; ...虽然不能键盘直接录入,可读性差,速度快) (2026 03 18 思考 ,若做出2b3e_CPU,那么2b3e汇编语言即可执行,不需要转换成机器语言, 2b3e_Asembly 2b3e_C 2b3e_java包装差别不是很大) (2026 1 21 思考 需要做支持 2b3e 的算术式 函数式??? lisp也这样支持??? 举例:add(123,new my2b3e("n".getBytes(), BACV.intToBytes(123)), "le_ba_int".getBytes())??? 举例:int c=456+new my2b3e("n".getBytes(), BACV.intToBytes(123)), "le_ba_int".getBytes());??? ) (2025 12 30 做myTii2b3e 实现了Tii, treeable inside item , http://www.gitee.com/zzchinahebei/myTii2b3e ) (2023 10 新思考 是否my2b3e可以迭代,像my2b3eObj那样,某item内含subMy2b3e item. 似乎那样FPGA难以直接支持?) (2023 12 思考 枚举限制 ,用2b3eObj表示, seek 或 GUI列表 , seek可以硬件实现 ,2b3e CPU支持 seek ,FPGA实现 2b3e Seek, 2b3e专用汇编级别指令seek... ) ---------- name (也可叫做: pointerOfItem ,reverseBorderOfItem) value ( paidload??) type (ieee754标准类型 int,long, float,double... null 自创的类型可以是: inner construct,size,endian order ; out app influnce ; store access,random pointer memory or stack, borderMarkOfDataArea ) (可叫做nextBorderOfItem) ---------- np 111111...1 vp 000000...0 tp 222222...2 -------- n与 np交替 ,v与 vp交替 ,t与 tp交替。 (就是 mainByte 与 pairByte交替混编 ) (就是 name mainByte 与 name pairByte交替混编 构成name混编块 , value mainByte 与 value pairByte交替混编 构成value混编块 , type mainByte 与 type pairByte交替混编 构成type混编块) np vp tp 对 n v t 提供 初始的注释描述标识功能 混编块内的字节级别的类型服务 ,上下文边界功能; t对v 提供 节点内的混编块级别的类型服务。 被0x31配对的是值的名字, 字符串,必须utf-8 被0x30配对的是值自己, 字符串 或 不是字符串 被0x32配对的是值的类型信息, 字符串, 必须utf-8 ----------- 2b3e is struct , {n, v, t} is one row three column array. {np, vp, tp}is one row three column array. {n, v, t} {np, vp, tp} ,they are 在存储器ISOMORPHISM同构. ----------- 这样是2b离散显示:(用于教学) mystr helloWorld utf_8 String 11111 0000000000 222222222222 ----- 这是2b混编显示:(实际的2b3e数据) m1y1s1t1r1h0e0l0l0o0w0o0r0l0d0u2t2f2_282 2S2t2r2i2n2g2 ----- 若不填102,大约类似是:(用于教学) "mystr" "helloWorld" "utf_8 String" ----------- n np不可空(因为兼职做节点边界) (名 不可空; 实在不知道叫什么, 起个名 a 也可) v vp可为空 null (值 可空) t tp不可空(因为兼职做节点边界) (类型 不可空; 实在不知道什么类型 ,写个 ba 也可 ,bytearray字节数组的缩写 。) ---------- 节点举例: mytext hello world utf-8_str ![输入图片说明](QQ%E5%9B%BE%E7%89%8720220215103335.png) ![输入图片说明](QQ%E5%9B%BE%E7%89%8720220215103343.png) xml大约 这样 〈mytext type=utf-8_str〉hello world〈/mytext〉 json大约 这样 { "mytext": { "type": "utf-8_str", "content": "hello world" } } ---------- 当然,先做个记事本。支持2b3e格式。录入显示。(按钮 ,能实现 2b串显示 或 2b并显示) 未来一个网站首页,可以是Index.2b3e文件 它2b3e脚本,可以替代asp html. jsp. vbscript xml 做互联网脚本。 解释器很容易做。词法解析几乎无难度 区分 指令词 参数词 边界词。 这个2b3e程序, 是一种信息完备的数据库。几乎不需编译 传统语语言的。字符串引号 转义符号 在2b3e语言是不必要的。 2b3e格式,能够 不依赖引号 不依赖转义 无忧虑 装载字符串。 2b3e格式,能够 不依赖引号 不依赖转义 无忧虑 装载 任意原态字节数组。 2b3e格式 可以解决 数据边界和字节序(big endian ,little endian. 大端序 小端序 允许混合序) 未来,2b3e格式的办公文档,第一段是utf_8 编码。第二段是GBK编码 第三段是两字节unicode BE编码 第四段是两字节unicodeLE编码。 是可以的。BOM不必使用了。2b3e之类型信息已经实现传统BOM功能。 未来,2b3e的编辑器,是记事本 是浏览器 是控制台 是IDE 是窗体內的编辑控件。同一个语言同一个格式。 机器语言 人类生活语言,都可用这个格式。 机器与机器交互,人与人交互,人与机器交互(编程,阅读,对话,信息录入)都可用之。 bios 免编译,bios是2b3e脚本的 未来,cpu门电路 直接读2b3e 对于 串口通信, 是 比特序 直观的。(视觉左至右侧 MSB LSB,对应 时间先 后)(usb要swap处理) 尽量不用2b3e嵌套,建议用2b3e队列。嵌套5级 大约 32倍了,paidload efficiency < 1/32 ,所以,建议大型数据不要嵌套,小尺寸的数据还可以嵌套。 read函数实现算法: 拉锁式交叉: m1y1s1t1r1h0e0l0l0o0 0w0o0r0l0d0u2t2f2_282 2S2t2r2i2n2g2 分析 右下队列 11111 00000000000 222222222222,边界 导数, 提出 左上队列 三成员 mystr "hello world" utf_8 String 左上队列 的 三个 成员: 值的名字 值 值的类型 //类 my2b3e ,大约900行, 可以说,无忧解析 2b3e item 。不依赖 任意乘法, 虽然用到 乘以2 ,这个可以 用移位 实现。所以 适合小cpu 比如8031 pic16解析,以及fpga 门电路解析 2b3e item。难度很小的。 //basic 2b3e function: 2b3e 通用函数原型: new my2b3e(byte[] ba) 构造函数 new my2b3e(byte n,byte[] v, byte[] t) 构造函数 check2b3e(byte[] ba) 检查是否是2b3e格式。返回字符串 "is2b3e" read(); 在指针 读一次 read_next(); 指针next移动一步, 读item。 read_rev(); 指针退一步, 读item。 ///edit make(byte n,byte[] v, byte[] t); static函数 append(byte[] ba);//ba is ba_2b3e append_ahead(byte[] ba); insert(byte[] ba); insert_ahead(byte[] ba); delete(); edit(byte[] v);//only edit v. n keep, t keep. clr(); Bytes(); ///navigate: go(int x) go_rev(int x) ///SQL seek_next(byte[] name) seek_next(byte[] name,byte[] value) //////////////////////////////////////////////////////////////////////////////// //high level 2b3e table function: 2b3e表格函数 原型: new my2b3eTable( my2b3e that) 构造函数 seekTable(int index_start) go_nextline() go_nextline(int x) //x is lines count, offset go_revline() go_revline(int x) read_line_item() //u can get each item. read_line_all_item()// item(node) pointer reset, be same as line_start_index ; refresh nextline_start_index delete_line_all_item() edit(byte[] newba)// newba_2b3e_line seekLine(byte[] SQL2b3e);//SQL2b3e is 2b3e format!!! go_seekedLine(); get_line_bytes(); // 2b3e 应对 传统 数据库表: ////// 2b3e 描述 传统 数据库表 (方法之 一, 直接包装 ): (item数很少) item : tableName表名字 item : columnCount字段数 item : struct样品行 名字是 myStruct,类型是 utf-8_str,struct , 值v是 {string name;int age;float height;string address} , 或 名字是 myStruct,类型是 2b3e_struct,值v是 (2b3e小型嵌套) name...utf-8_str age...le_ba_int height...float address...utf-8_str 的 102paired形式。 或 item :struct_border { utf-8_str item: name...utf-8_str item: age...le_ba_int item: height...float ... item: address...utf-8_str item :struct_border } utf-8_str item: record content,大型2b3e item。名字是 myTableContent ;传统 数据表内容 直接进 2b3e之V;类型是 myStruct,array /////// 2b3e 应对 传统 数据库表 (方法之二:适合小型。)(item数很多) item : 表名字 item : columnCount item : struct 名字是 myStruct,类型是 utf-8_str,struct , v 是 {string name;int age;float height;string address} 或 名字是 myStruct,类型是 2b3e­_struct ,v是 (2b3e小型嵌套) name ...utf-8_str age...le_ba_int height...float address...utf-8_str 的 102paired形式。 或 item :struct_border { utf-8_str item: name...utf-8_str item: age...le_ba_int item: height...float ... item: address...utf-8_str item :struct_border } utf-8_str // record content:// item :border { utf-8_str item :data point item :data point ...... item :data point item :border } utf-8_str ///// 对应 传统 的数据库 表 之三。(适合小型 大型)(二之改进,record使用 t generic) (item数很多) item : 表名字 item : columnCount item : struct 名字是 myStruct,类型是 utf-8_str,struct , v 是 {string name;int age;float height;string address} 或 名字是 myStruct,类型是 2b3e­_struct ,v是 (2b3e小型嵌套) name ...utf-8_str age...le_ba_int height...float address...utf-8_str 的 102paired形式。 或 item: struct_border { utf-8_str item: name...utf-8_str item: age...le_ba_int item: height...float ... item: address...utf-8_str item :struct_border } utf-8_str //record content// item :border { utf-8_str //下面的data point,名字用 n 代表, 类型 用 t 代表,这样 存储占用小了很多。T似乎是generic?占位符号? item :data point item :data point ...... item :data point item :border } utf-8_str ///// 实现了:Access mdb文件之一个表 转 2b3eTable , //////////////////////// 实现了 .BMP文件 转 .2b3e_BMP 读.2b3e_BMP文件 显示在my2b3eImagePanel .2b3e_BMP与 .BMP文件 结构 很接近。 、、、、、、、、、、、、、、、、、、、、、、、、 #### 软件架构 java class ,my2b3e.java (最新 类型,在 mycommomTool工程,my2b3e包 my2b3e_typeTool.java文件,, c rust go python 工程都可能不是最新,要依据这个改一改) 暂时 可用的类型: "utf-8_str","gbk_str","unicodeBE_str","unicodeLE_str", "le_ba_int","le_ba_long", "le_ba_float","le_ba_double" , "le_ba_color", "be_ba_int","be_ba_float", "ba", "utf-8_str,ba", //utf-8_str,struct",v是 {string name; int age;float height ;string address} 字符串形式 "utf-8_str,struct", //2b3e_struct v是 name ...utf-8_str age...le_ba_int height...float address...utf-8_str 的 102paired形式。// 小型2b3e嵌套了。 "2b3e_struct", "utf-8_str,unix time", "le_ba_long,unix time", "utf-8_str,boolean", "utf-8_str,web" "null" "utf-8_str,null" //ObjPath seekObj(ObjPath) listAllObj() "utf-8_str,ObjName" "utf-8_str,ObjValueBorder" "utf-8_str,ObjType" ####源程序 编译教程 1. 下载工程, 解压在桌面。 2. eclipse , file-> import ->,general ,-> existed project into workspace(带十字的图标),点之,然后点next select root directory 右侧 点select ,select 桌面的 刚才解压得到的 目录。 copy projects into workspace 前,打钩 点finish 3. eclipse ,点击 绿色三角 ,run . 若不 执行,卡住了: 由于eclipse的编译是基于时间戳的判断机制的。 因此当你按build all的时候有些eclipse认为时间戳没有改变的类不会被编译。 因此你可以先clean一下再编译。这个时候eclipse会将所有的以前编译信息清除然后编译。 eclipse --->project ----->clean... !!!!!!! 选项将工程中的.class文件删除,同时重新编译工程,类似于jbuild中的rebuild 之后, eclipse --->project ----->build all... 所以有些时候编译不通过原因是没有project->clean造成的!!! eclipse > project > clean 是把 eclipse 编译生成的 class 之类的文件删除,以便以后再次编译。 redeploy 是指把 web 重新部署到 tomcat, 这可能会把 jsp/html/css/js 之类的文件及 WEB-INF 目录复制到 tomcat 或者是把整个项目导致成一个 war 复制到 tomcat。 4. 观察 IDE控制台 输出 ,以及 自带的 BPH控制台。 5. my2b3etest 包含 main函数例程, 可看到 怎样 调用 my2b3e类 函数。 。 ####应用程序 使用说明 1. 普通用户使用编辑器, my2b3eEditor.jar start2b3eEditor.bat 在desktop 。 my2b3eEditor.jar 可以在win7 win10 ubuntu redhat macos freebsd ......运行。 需要安装 JRE 或jdk search "jre" ,install... or search "jdk",install... (cmd window , java -jar C:\Users\Administrator\Desktop\my2b3eEditor.jar , or double click start2b3eEditor.bat) 编辑新文件, 要 按clrALL 按钮, 2. 类库, 编程 : my2b3e a=new My2b3e(); a.append("age".getBytes(),"10".gteBytes(),"utf-8_str".getBytes()); a.append("weight".getBytes(),"120".gteBytes(),"utf-8_str".getBytes()); a.myindex_start=0; a.read(); System.out.println(String(a.bap1)); System.out.println(String(a.bap0)); System.out.println(String(a.bap2)); #### 参与贡献 已经 设计了这些 文件格式。 能用了。 myimgfile.2b3e_BMP mysndfile.2b3e_WAV myanimatefile.2b3e_GIF mydocfile.2b3e_DOC myavifile.2b3e_AVI myexefile.2b3e_script 即将 设计: myMIDfile.2b3e_MIDI (比传统midi文件增大30倍。)(ok) myWebFile.2b3e_web myGUIfile.2b3e_form (似乎 web doc form是 一回事 啊) ////////////// 可能 , 设计 10比特 内存 以及 cpu寄存器 磁盘 u盘 网络总线通信物理层芯片, 更高效的 使用2b3e ,转换为 8bit paired with 2bit, 3element 的 实现格局。现在 毕竟 2b3e 消耗 存储 比较大,(8bit paired 8bit,3 element 啊) (实际呢, 用 2bit 表示element ID ,很高效, ) 现在2b3e存储效率大约1/3 到1/30 之间。 ///// 可以制作 : 2b3e格式的 温湿度传感器, 2b3e键盘鼠标 , , USB 外置的 可编程继续构造的windows(form , frame), 2b3eIE浏览器。 2b3e气体传感器, 2b3e红外测距传感器, 2b3e语音传感器。 2b3e格式的 数码相机 摄像头 ,存入sd卡的文件是 mypic.2b3e_JPG格式。myvideo.2b3e_mpeg 2b3e格式的 数控车床 , 2b3e格式的 ugnx指令。 2b3e格式的 3D打印机 普通打印机 2b3e格式的 车 楼 的控制器。 2b3e格式的 AD DA 模数转换器 数模转换器 芯片。 ================== 希望可以代替 XML ini json RIFF yaml toml edn protobuf ,bson cbor ================= #### 特技 2b6e number oneFactor 102 435 更专业的 my2b3eEditor编辑器 在这:https://gitee.com/zzchinahebei/my2b3e_Editor