0
点赞
收藏
分享

微信扫一扫

Go语言的图灵机

诗远 2022-03-15 阅读 58

代码如下:

package main

import (
	"fmt"
)

var (
	a     [30000]byte
	prog  = "++++++++++[>++++++++++<-]>++++.+."
	p, pc int
)

func loop(inc int) {
	for i := inc; i != 0; pc += inc {
		switch prog[pc+inc] {
		case '[':
			i++
		case ']':
			i--
		}
	}
}

func main() {
	for {
		switch prog[pc] {
		case '>':
			p++
		case '<':
			p--
		case '+':
			a[p]++
		case '-':
			a[p]--
		case '.':
			fmt.Print(string(a[p]))
		case '[':
			if a[p] == 0 {
				loop(1)
			}
		case ']':
			if a[p] != 0 {
				loop(-1)
			}
		default:
			fmt.Println("Illegal instruction")
		}
		pc++
		if pc == len(prog) {
			return
		}
	}
}

运行结果如下:

hi

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取。
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

举报

相关推荐

0 条评论