首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BCPL八进制数值常数

BCPL八进制数值常数
EN

Stack Overflow用户
提问于 2013-09-24 17:11:44
回答 1查看 1.2K关注 0票数 4

我一直在深入研究BCPL的历史,因为我被问到了使用前缀"0x“表示十六进制数的原因。

在我的搜索中,我偶然发现了一个关于这个标记背后的历史的非常好的解释。(为什么十六进制数字前缀为0x?)

然而,从这篇文章中又引出了另一个问题:

对于八进制常量,BCPL是使用8 <digit> (按照规范:http://cm.bell-labs.com/cm/cs/who/dmr/bcpl.pdf)还是使用#<digit> (按照manual.pdf),还是在不同的语言实现中都是有效的?

我还找到了第二个答案,它使用了#语法,这进一步吸引了我对这个主题的兴趣。(为什么前导零用来表示八进制数?)

任何历史见解都会受到极大的赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 05:02:01

在BCPL语法上有许多细微的变化。

例如,虽然我们使用的单元格有16位单元格(因此x!yx + y的单词地址(单词地址为字节地址的一半)中给出了16位单词),但我们也需要从字节地址和字节值中提取(因为我们主要是在6809字节可寻址的CPU上创建操作系统和控制软件)。

因此,除了:

代码语言:javascript
复制
x!y - get word from byte address (x + y) * 2

我们也有

代码语言:javascript
复制
x!%y - get byte from byte address (x * 2) + y
x%!y - get word from byte address x + (y * 2)
x%%y - get byte from byte address x + y

我很确定它们是特定于实现的,因为我从未在其他地方看到过它们。而BCPL早在语言标准像今天这样重要之前就已经存在了。

规范语言规范应该是Richards编写语言后的早期规范(您的第二个文档用于大约十年后的Essex BCPL实现)。但是请记住,Project是最早的迭代--在那之后也有很多进步。

例如,2013年修订了BCPL用户指南(参见马丁主页),该指南将#b#o#x指定为各种非十进制基数的前缀。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18987911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档