首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候开始在编程语言中引入无符号类型?

问什么时候开始在编程语言中引入无符号类型?
EN

Software Engineering用户
提问于 2017-04-28 10:00:57
回答 1查看 389关注 0票数 0

最近我学到了标准的Fortran 不支持无符号整数。。福特兰是一种有着悠久历史的语言。我想,当Fortran第一次被设计的时候,根本就没有无符号整数的概念,而且在那之后从来没有引入过它们。

有符号整数比无符号整数早吗?

如果是的话,无符号整数是什么时候作为一种专用类型首次引入的,在实际编程语言中是可以直接访问的,它们是什么时候开始普及的?

我读过这个关于无符号整数存在的理由的问题。,但答案中并没有提到历史。PieterB的回答最接近微处理器本身就是无符号的。有符号的数字是实现的,而不是相反的。这意味着,我问题的第一部分的答案是“不,他们没有。”但实际上并没有这样的答案。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-04-28 11:17:04

根据维基百科的说法,符号数的概念出现在中国(公元前200年~公元200年)的汉代,直到17世纪才被西方所接受。

虽然这似乎是一个尖刻的评论,但事实并非如此:这是为了强调数字与使用数字的领域有着内在的联系。西方的数学是建立在计数和几何的基础上的(在上过希腊数学的大学级课程之后,我可以告诉你,27个字母、一个直线边和一个指南针能做到什么,这是相当了不起的)。

类似地,计算机语言使用的数字与使用它们的域相关联。Fortran是为数值分析而开发的;Cobol,其同时代,是为商业数学而设计的。这两个域都需要有符号的数字,而且对无符号数字几乎没有用处。Lisp是另一种50年代后期的高级语言;我不知道最初的版本用于数字。

无符号数字通常只适用于机器控制领域,在机器控制领域,您访问机器单词的每一个部分,而不希望出现诸如符号扩展之类的行为。然而,由于程序员对编译器的恐惧,机器级编程没有使用“高级”语言。随着C语言和其他语言的变化,这些语言引入了无符号整数类型。

这就引出了机器语言,它代表了机器的基本操作。在这里,事情变得有点奇怪,因为有符号的数字只是看待比特的一种方式。

加法器电路对符号一无所知:它只接受两位作为输入,产生两位作为输出。通过将一串加法器链接在一起,您可以以两个单词作为输入,并生成一个单词+进位作为输出。如果在16位架构上添加0x7FFF和0x0003,则得到0x8002。如何解释取决于你自己:也许你增加了两个正数,得到了另一个正数,也许你对一个负数溢出了。

所有这些都是说这个问题本身是无效的。签名和未签名只是一种特定于域的查看相同位元的方法。

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

https://softwareengineering.stackexchange.com/questions/348002

复制
相关文章

相似问题

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