《计算机科学导论》一2.3 非位置化数字系统

简介: 本节书摘来华章计算机《计算机科学导论》一书中的第2章 ,第2.3节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来华章计算机《计算机科学导论》一书中的第2章 ,第2.3节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 非位置化数字系统

尽管非位置化数字系统并不用在计算机中,但我们给出简单的介绍作为和位置化数字系统的比较。非位置化数字系统仍然使用有限的数字符号,每个符号有一个值。但是符号所占用的位置通常与其值无关—每个符号的值是固定的。为求出该数字的值,我们把所有符号表示的值相加。该系统数字表示为:

image


并有值为:

image


与前面提到的相加规则有一些例外,如例2.24所示。
例2.24 罗马数字系统是非位置化数字系统的一个好例子。该系统由罗马人发明,并在欧洲一直使用到16世纪。它仍在体育比赛、钟表刻度和其他应用中使用。该数字系统有一套符号S={I,V,X,L,C,D,M},每个符号的取值如表2-3所示。


image

为求一个数的值,我们需要遵循特定的法则将符号的值相加:
1)当一个带有较小值的符号位于一个带有同等值或较大值的符号的后面,这些值相加。
2)当一个带有较小值的符号位于一个带有较大值的符号的前面,用大值减小值。
3)如果S1≤10×S2,则符号S1不能出现在符号S2之前。例如,I和V不能出现在C前面。
4)对于大数字,在6种符号(除I以外的所有符号)中的任意一个上方加横杠表示乘以1000。例如,V=5000和 M=1 000 000。
5)尽管罗马人使用单词nulla (空)来表达零的概念,但罗马数字在其系统中缺少数码0。
下面显示了一些罗马数字和它们的值:

image

相关文章
|
算法 Android开发 Python
LeetCode 周赛上分之旅 #43 计算机科学本质上是数学吗?
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
62 0
LeetCode 周赛上分之旅 #43 计算机科学本质上是数学吗?
|
5月前
|
机器学习/深度学习 资源调度
技术经验解读:【常用】数学符号及读法大全
技术经验解读:【常用】数学符号及读法大全
54 0
|
6月前
|
存储 算法 程序员
【专栏】二进制这一计算机科学基础,包括其概念历史、在计算机科学中的应用及与编程的联系
【4月更文挑战第28天】本文探索了二进制这一计算机科学基础,包括其概念历史、在计算机科学中的应用及与编程的联系。二进制作为基数为2的数制,由0和1构成,是计算机处理和存储数据的语言。从古代阴阳哲学到莱布尼茨的理论,二进制影响了现代计算技术。在硬件、数据存储、传输和处理中,二进制扮演关键角色。编程中,位运算和布尔逻辑基于二进制,理解二进制能优化代码和提升性能。掌握二进制知识,是理解数字世界的关键。
341 1
|
6月前
|
机器学习/深度学习 算法 BI
【设计】 【数学】1622 奇妙序列
【设计】 【数学】1622 奇妙序列
|
存储 算法 Linux
输入和输出 文件读写 知识点总结 C++程序设计与算法笔记总结(六) 北京大学 郭炜
输入和输出 文件读写 知识点总结 C++程序设计与算法笔记总结(六) 北京大学 郭炜
84 1
|
算法
重温算法之只出现一次的数字
这是一道特别好的题目,虽然题目难度是简单,其实我们往往都会把简单问题复杂化,所以会导致问题越解越难,这就是要看看我们的大脑够不够灵光了。
122 0
重温算法之只出现一次的数字
|
JavaScript 安全 前端开发
【重温基础】6.数字
【重温基础】6.数字
111 0
|
存储 编解码 内存技术
《新编计算机科学概论》一1.3 非数值信息的编码
本节书摘来自华章出版社《新编计算机科学概论》一 书中的第1章,第1.3节,作者:刘艺 蔡敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1775 0
下一篇
无影云桌面