gpt4 book ai didi

char - 使用 Gforth 获取 ASCII 码

转载 作者:行者123 更新时间:2023-12-04 22:56:52 24 4
gpt4 key购买 nike

输入时'a'在 Gforth 中,字符的 ASCII 数字(与使用 key 字并按 a 放入堆栈的数字相同)被放入堆栈。

例如,这不适用于 ' ' (空间)。反而:

' '  ok
.s <1> 34384939008 ok

数字“应该”是 32。如何解释这种行为?以及可以做些什么——除了手动输入对应于 ' ' 的 ASCII 数字。 (空间)在堆栈上?

最佳答案

'a'语法对 Forth 来说很新。它是作为传统语法之上的扩展添加的,该语法将所有内容解析为以空格分隔的标记。所以'a'是一个原子标记,然后将其解析为字 rune 字。

现在,' '不是原子标记,因为它包含一个空格字符。相反,它被解析为两个 ' token 。它实际上是完全有效的 Forth 代码,因为 ' is a Forth word (called "tick") .在您的示例中,第一个刻度对第二个刻度进行操作。结果,34384939008 , 是 ' 的 xt .

该怎么办?获取字符的ASCII码的传统词是CHAR[CHAR] .第一个在解释模式下工作,第二个在编译模式下工作。 但是 它们不适用于空格字符的特殊情况,因为再次解析所有空格。

但是,还有一个词将 ASCII 码空间字符压入:BL .

关于char - 使用 Gforth 获取 ASCII 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172186/

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