摘要:
Visual Studio 2022 17.10在打开C#文件时滚动条缩略图没有代码着色,折腾了很久才知道是一个bug,官方表示在Visual Studio 2022 17.11中将得到解决: Developer Community (visualstudio.com) 阅读全文
摘要:
vs更新后C#增加了一个内联重命名的功能 效果如图: 但是我这个窗口的字怎么这么小呢,研究了很久都没地方单独调整它的大小,唯一能修改它的地方只有两处: 一个是环境的字体,自定一个字体就可以修改大小,会影响vs整个界面的字体大小: 一个是文本编辑器纯文本的字体大小,会影响所有相关的文字: 后来突然明白 阅读全文
摘要:
刚学编程的时候,我买了一本《Python基础教程》,读到网络编程时我看到一个词——“套接字(socket)”,书里说“套接字基本是两个端点的程序之间信息通道”,可我还是不明白“套接字”这三个字是什么意思,这个疑惑就这样一直随着我到现在。 关于这本书,分享一些故事:我的编程之旅 直到昨天,这个疑惑突然 阅读全文
摘要:
这篇文章是关于我的GBA库lib_hl中数学库的定点数部分。 定点数是什么?为什么要用定点数? 在之前的文章中,我已经介绍了GBA的硬件,它的CPU竟然居然理所当然没有浮点数运算单元! 我要写的是光线追踪程序,基本上都在做精确的数学运算,而这个CPU却连浮点数都不支持,那不是没得玩? 当然是有方法的 阅读全文
摘要:
写个自己的GBA库 上篇文章(待写)介绍了GBA的硬件,例如寄存器、内存、中断等,其中很多寄存器可以说是GBA的遥控器,要使用GBA的硬件功能,就是要和这些寄存器打交道。 怎么打交道呢?这些寄存器都有地址,在C语言中可以转成指针来读写。为了方便使用,我们需要先写一个GBA库,库里应该有: 定义GBA 阅读全文
摘要:
上两篇文章我介绍了我最近设计的一套指令集及其对应的虚拟机架构,这篇文章就来介绍虚拟机的实现过程。 虚拟机其实很简单,需要做的只是用一种指令去模拟另一种指令的功能。 为了运行速度,当然希望用尽量低级的方法去模拟,所以应该用汇编编写,但为了效率,我先用的C语言写出整体逻辑,后期再考虑汇编。 虚拟机原理 阅读全文
摘要:
前一篇文章简单介绍了我的VL指令集和LVM虚拟机,这篇文章介绍VL指令集的设计过程。 设计指令集 这里我一步步说明目前指令的设计过程,这些指令大多已经确定,也有一些是临时加入,还没有验证实用性。 希望看到这篇文章的读者能多多给我提建议,让我的虚拟指令能从玩具变成实用品。 针对软件设计的虚拟指令集 在 阅读全文
摘要:
前言 在半年前,我萌生了创造一门独特的编程语言的想法。大约三个月前,脑中的这个想法逐渐变得清晰,我想实现一种可以不用键盘就能编写代码的语言。比较准确得说应该是一门图形化编程语言,不完全是像蓝图脚本那样,而是结合代码和图形的优点。 设想中它是一门高级解释型语言,所以我先命名它为“H”语言,意为高级。但 阅读全文
摘要:
在科学运算、图形学、游戏等很多领域中,开方是很常见却又非常耗时的运算,因此必须使用快速(有时还要求准确)的开方算法。 说起开方算法我们一般想到的是牛顿迭代法,这里我介绍一种更好的方法——逐比特确认法。 逐比特确认法从数字的本质出发,关注结果的每一比特位。它从最高位开始,向低位逐一确认某位是0还是1。 阅读全文
摘要:
C语言支持定义可变参数的函数,方法是在函数的参数列表最后加上 " ... ",代表变长的参数列表,例如: void Func(int num, ...) { } 需要注意 “...” 必须在最后,而且前面起码要有一个固定的参数,类型可以任意。 为什么要有一个固定的参数呢?这篇文章要说明的就是这个问题 阅读全文