gpt4 book ai didi

basic - Vic-20 basic 中的变量替换比内联整数更快?

转载 作者:行者123 更新时间:2023-12-01 13:05:16 29 4
gpt4 key购买 nike

以下两个(功能相同的)程序摘自旧一期的 Compute's Gazette。主要区别在于程序 1 将目标基本内存位置(7680 和 38400)内联,而程序 2 首先将它们分配给一个变量。

程序 1 的运行速度比程序 2 慢 50%。为什么?我认为额外的变量检索会增加时间,而不是减少时间!

10 PRINT"[CLR]":A=0:TI$="000000"
20 POKE 7680+A,81:POKE 38400+A,6:IF A=505 THEN GOTO 40
30 A=A+1:GOTO 20
40 PRINT TI/60:END

程序一

10 PRINT "[CLR]":A=0:B=7600:C=38400:TI$="000000"
20 POKE B+A,81:POKE C+A,6:IF A=505 THEN GOTO 40
30 A=A+1:GOTO 20
40 PRINT TI/60:END

程序 2

最佳答案

原因是 BASIC 在这里被完全解释,所以字符串“7680”和“38400”需要在每次到达第 20 行时被转换为二进制整数(在这个程序中是 506 次)。在程序 2 中,它们被转换一次并存储在 B 中。因此,只要 B 的搜索和获取速度比 convert-string-to-binary 快,程序 2 就会更快。

如果您要使用 BASIC 编译器(不确定是否存在用于 VIC-20 的编译器,但它会是一个很酷的复古编程项目),那么程序的速度可能相同,或者 1 可能略微更快,具体取决于编译器所做的优化。

关于basic - Vic-20 basic 中的变量替换比内联整数更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568967/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com