二次创作Z01语言
目录
一,字符集
二,编译分词
三,token含义
四,Z01翻译成C++
五,执行翻译后的代码
六,打印Hello World!
一,字符集
假设有门语言叫Z01语言,代码中只有0和1这两种字符。
二,编译分词
预处理剔除所有非0和1的字符之后,采用固定分词方式,从左往右每三个字符构成1个token,所以一共有8种token。
PS:预处理不是重点,本文不涉及,假设输入的都是只有0和1的字符。
三,token含义
| token | 含义 |
| 000 | 指针加一 |
| 001 | 指针减一 |
| 010 | 指针指向的字节的值加一 |
| 011 | 指针指向的字节的值减一 |
| 100 | 输出指针指向的单元内容(ASCⅡ码) |
| 101 | 输入内容到指针指向的单元(ASCⅡ码) |
| 110 | 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处 |
| 111 | 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处 |
聪明的读者或许已经看出来了,我这个只是二次创作,毕竟有趣的灵魂互相抄袭。
四,Z01翻译成C++
string translate(char a, char b, char c)
{if (a == '0') {if (b == '0') {if (c == '0') {return "p++";}else {return "p--";}}else {if (c == '0') {return "*p = *p + 1";}else {return "*p = *p - 1";}}}else {if (b == '0') {if (c == '0') {return "cout<<char(*p)";}else {return "*p=getchar()";}}else {if (c == '0') {return "while(*p){";}else {return "}";} }}
}int main()
{char a,b,c;string s;while (cin >> a >> b >> c) {s += translate(a,b,c);if (a == '1'&&b=='1'&&c=='0')continue;s += ";\n";}cout << s;return 0;
}
例如,输入:
010010010010010010010010010010010010010110011000010010010010010001111000100
输出:
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
五,执行翻译后的代码
void run()
{char arr[1000] = { 0 };char* p = arr+500;//input code
}int main()
{run();return 0;
}
只要把翻译后的代码粘贴进去就行。
六,打印Hello World!
有了打印一个字符的经验和归0操作,接下来就可以输出任意字符了:
Ascii码分别是72,101,108,108,111,32,87,111,114,108,100,33
代码应该是:
010010010010010010010010010110011000010010010010010010010010001111000100110110011111001111010010010010010010010010010010110011000010010010010010010010010010010001111000010100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000010010010100110110011111001111010010010010010010010010110011000010010010010001111000100110110011111001111010010010010010010010010110011000010010010010010010010010010010010001111000011100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000010010010100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000010010010010010010100110110011111001111010010010010010010010010010110011000010010010010010010010010010010010010001111000100110110011111001111010010010010010010010010010010110011000010010010010010010010010010010001111000100110110011111001111010010010010010010010010110011000010010010010001111000010100110110011111001111
翻译结果:
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p + 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p - 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
while(*p){*p = *p - 1;
p++;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
*p = *p + 1;
p--;
};
p++;
*p = *p + 1;
cout<<char(*p);
while(*p){while(*p){*p = *p - 1;
};
p--;
};
运行效果:
![]()
相关文章:
二次创作Z01语言
目录 一,字符集 二,编译分词 三,token含义 四,Z01翻译成C 五,执行翻译后的代码 六,打印Hello World! 一,字符集 假设有门语言叫Z01语言,代码中只有0和1这两种字符。 二&#…...
【蓝桥杯国赛真题28】Scratch行驶的汽车 少儿编程图形化编程 中小学生第十四届蓝桥杯scratch国赛真题讲解
目录 scratch行驶的汽车 一、题目要求 编程实现 二、案例分析 1、角色分析...
LeetCode Hot100 236.二叉树的最近公共祖先
题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节…...
ERROR: Could not find a version that satisfies the requirement torch
在windows 上安装pip install torch torchvision torchaudio 报错: ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决办法: 将python版本降到3.11…...
2009年iMac装64位windows7及win10
2009年iMac装64位windows7及win10 Boot Camp没有“创建 Windows7 或更高版本的安装磁盘”选项 安装完Mac OS系统后,要制作Windows7安装U盘时才发现,Boot Camp没有“创建 Windows7 或更高版本的安装磁盘”选项,搜索到文章:修改Boo…...
(三) Windows 下 Sublime Text 3 配置Python环境和Anaconda代码提示
一:新建一个 Python3.7 编译环境。 1 Tools--Build System--New Build System... 修改前: 修改后: 内容: {"cmd":["C:\\Python\\Python37-32\\python.exe","-u","$file"],"file_r…...
【shell脚本】一些简单的shell脚本案例,mark一下
1、使用变量生成随机密码 比如自定义密码里面是数字和字母(或者还可以是某些符号等),随机生成一个想要的多少位的密码 [root@localhost test]#vim mima.sh #!/bin/bash str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPKRSTUVWXYZ0123456789" for i in {1..6} …...
Android Studio记录一个错误:Execution failed for task ‘:app:lintVitalRelease‘.
Android出现Execution failed for task :app:lintVitalRelease.> Lint found fatal errors while assembling a release target. Execution failed for task :app:lintVitalRelease解决方法 Execution failed for task ‘:app:lintVitalRelease’ build project 可以正常执…...
计算机组成原理4
1.汇编语言 2.汇编语言常见的运算指令 3.AT&T格式 和 Intel格式 4.跳转指令 5.cmp比较的底层原理 6.函数调用的机器级表示 7.CISC和RISC...
【人工智能】Chatgpt的训练原理
前言 前不久,在学习C语言的我写了一段三子棋的代码,但是与我对抗的电脑是没有任何思考的,你看了这段代码就理解为什么了: void computerMove(char Board[ROW][COL], int row, int col) {while (1){unsigned int i rand() % ROW, …...
一文讲明SpringMVC 【爆肝整理一万五千字】
我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...
【Python爬虫实战项目】ip代理池项目原理及代码解析
视频讲解链接:https://www.bilibili.com/video/BV1e8411r7xX/ 代码链接:https://github.com/w-x-x-w/Spider-Project 大家好,这一季我们来介绍一个Python爬虫实战项目-ip代理池项目,这一集我们会首先介绍ip代理池的工作原理流程&a…...
Ardupilot开源飞控之VTOL之旅:配件规格
Ardupilot开源飞控之VTOL之旅:配件规格 1. 源由2. 飞控板 Aocoda-RC H743Dual3. PDB分电板 Aocoda-RC PDB30604. GPS BN8805. 摄像头 RunCam 1200TVL6. 模拟图传 JHEMCU RuiBet Tran-3016W 5.8GHZ 1.6W7. 打印件7.1 飞控/GPS座子7.2 VTX/天线座子7.3 接收机天线座 8…...
Binlog vs. Redo Log:数据库日志的较劲【基础】
🎏:你只管努力,剩下的交给时间 🏠 :小破站 Binlog vs. Redo Log:数据库日志的较劲 前言第一:Binlog与Redo Log的基础概念Binlog(二进制日志)的基础概念Redo Logÿ…...
代理模式-C语言实现
UML图: 代码实现: #include <stdio.h>// 抽象主题接口 typedef struct {void (*request)(void*); } Subject;// 具体主题类 typedef struct {void (*request)(void*); } RealSubject;void RealSubject_request(void* obj) {printf("RealSubj…...
解密 sqli靶场第一关:一步一步学习 SQL 注入技术
目录 一、判断是否存在注入点 二、构造类似?id1 --的语句 三、判断数据表中的列数 四、使用union联合查询 五、使用group_concat()函数 六、爆出数据库中的表名 七、爆出users表中的列名 八、爆出users表中的数据 🌈嗨!我是Filotimo__🌈。很…...
Flask 使用Jinja2模板引擎
Jinja2,由Flask框架的创作者开发,是一款功能丰富的模板引擎,以其完整的Unicode支持、灵活性、高效性和安全性而备受推崇。最初受Django模板引擎启发,Jinja2为Flask提供了强大的模板支持,后来也成为其他项目的首选。在本…...
C/C++内存管理,malloc,realloc,calloc,new,delete详解!!!
1.初步了解内存中各个区间存储的数据特征 1.栈区:存储一些局部变量、函数参数、返回值等,跟函数栈振有关,出了作用域,生命周期结束。 2.堆区:用于动态开辟空间,如果不主动销毁空间,则程序运行结…...
高级JVM
一、Java内存模型 1. 我们开发人员编写的Java代码是怎么让电脑认识的 首先先了解电脑是二进制的系统,他只认识 01010101比如我们经常要编写 HelloWord.java 电脑是怎么认识运行的HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不…...
论文阅读——MCAN(cvpr2019)
补充一下MCAN-VQA: 对图片的处理:首先输入图片到Faster R-CNN,会先设定一个判断是否检测到物体的阈值,这样动态的生成m∈[10,100]个目标,然后从检测到的对应的区域通过平均池化提取特征。第i个物体特征表示为ÿ…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
