加三码(Excess-3/XS-3)是一种二进码十进数,也叫Stibitz code,是一种互补
BCD码和记数系统。XS-3 用于一些老式计算机上和
寄存器上,以及上世纪 70 年代的手持便携电子
计算器中。
内容简介
加三码(Excess-3/XS-3)是一种二进码十进数,也叫Stibitz code,是一种互补
BCD码和记数系统。
XS-3 用于一些老式计算机上和
寄存器上,以及上世纪 70 年代的手持便携电子
计算器中。XS-3 用预先指定的数字N作为偏重值(biased value)来表示数值,非
加权(nonweighted)。此类并称XS-N。在 XS-3 中,每位数字表示为该位原数值加三的四
位(bit)二进制数。亦即,XS-3 等同于十进制数自身加三,再转化为二进制形式。
二进码十进数
二进码十进数(英语:Binary-CodedDecimal,简称BCD,通常称为BCD码或二-十进制编码)是一种十进制数字编码的形式。在这种编码下,每个十进制数字用一串单独的二进制
比特来存储与表示。常见的有以4位表示1个十进制数字,称为压缩的BCD码(compressed or packed);或者以8位表示1个十进制数字,称为未压缩的BCD码(uncompressed or zoned)。
这种编码技术,最常用于
会计系统的设计里,因为会计制度经常需要对很长的数字做准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可使电脑免除作浮点运算所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
BCD码的主要优点是在机器格式与人可读的格式之间转换容易,以及十进制数值的高精度表示。BCD码的主要缺点是增加了实现算术运算的电路的复杂度,以及存储效率低。
常用BCD编码方式
对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:
8421码
8421码又称为BCD码,是十进制代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数码。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位“1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。
记数系统
概述
记数系统,或称记数法或数制,是使用一组
数字符号来表示
数的体系。一个理想的记数系统能够:有效地描述一组数(例如,
整数、实数);所有的数对应唯一的表示(至少有一个标准表示法);反映数的
代数和算术结构。
记数系统可以按照以下方式分类:按照
进位制,可分为
十进制、
二进制、
八进制等;按照写法,可分为
中文数字、
阿拉伯数字、
罗马数字等。
历史
在木头、骨头或石头上的计数符号从史前时代就开始被使用了。
石器时代的文化,包括古代
印第安人,使用计数符号进行赌博、私人服务和交易。
在公元前8000年至前3500年间,
苏美尔人发明了使用粘土保留数字信息。他们的做法是将各种形状的小的粘土记号像珠子一样串在一起。从大约前3500年开始,粘土记号逐渐被数字符号取代。这些数字符号是使用圆的笔针刻在粘土块上,然后烧制而成的。大约前3100年,数字符号与被计数的事物分离,成为抽象的符号。在前2700年至前2000年间,圆的笔针逐渐被一种尖的笔针取代,这种笔针可以在粘土上刻出楔形符号。这种楔形数字和圆形数字相似,并保留了符号数值记数法。这些记数系统逐渐演变成了一种常见的
六十进制系统。这个系统是一种位置数值记数法,只使用竖向的楔形和人形两种符号,而且能够表示分数。这个系统在古巴比伦的初期(大约前1950年)得到了充分的发展,并成为
巴比伦尼亚的标准。
上述六十进制系统是一种混合进位制系统,它的一个符号序列的不同位置上使用10和6两个基数。这个系统被广泛地应用于商业,同时也在天文学和其他计算中被使用。这个系统从巴比伦尼亚输出,并传遍了
美索不达米亚,包括
希腊,
罗马和
埃及。我们仍然用它来计算
时间(1小时=60分钟)和
角度(1度=60分)。
中国古代采用
算筹记数,个位百位万位等奇数位用纵筹,偶数位用横筹,零用空位表示。有时,军队人数和供给品记数采用
质数的
算筹,并按照模算术运算。(参看:
大衍求一术,中国剩余定理)。模算术的好处在于,尽管其加法相对困难,但乘法很容易。这使得模算术很适合军需品的计算。在现代,同样的模算术有时用于数字信号处理。
罗马帝国使用腊、纸草、和石头上的割符,大致遵从
希腊人将字母对应不同数的习惯。
罗马数字在欧洲被普遍使用,直到1500年代
进位制开始流行。
中美洲的
玛雅数字采用20或18为基数的系统,可能继承自
奥尔梅克文明,它包含了位置数值记数法和零这样的高级属性。他们将此用于高级的天文计算,包括高精度的
太阳年长度和金星轨道的计算。
印加帝国采用奇普,一种打结的带颜色的绳子来记数。关于使用结和颜色来编码的知识被西班牙征服者于16世纪所摈弃,并因此失传今天,简单的结绳工具仍在
安地斯山脉地区使用。
数位算术随着
中国的
算盘的广泛使用而开始。最早的书面数位记录似乎是大约400年的算盘计算的结果。特别在大约932年,零已被中国数学家正确地表述了,并且似乎是因为采用一个圆圈表示没有算盘珠子的那一位而产生的。
在
印度,现代数位数字系统被传给阿拉伯人。可能是和天文表格一起,这一系统被一位印度大使在约773年带到
巴格达。对于印度的数字系统的详细讨论,参看
阿拉伯数字和
印度数字。
从印度出发,伊斯兰苏丹们和非洲的旺盛贸易将此数字系统的概念带到了
开罗。阿拉伯数学家们将此系统推广到
十进制分数。在9世纪,
花拉子密写下了关于该系统的重要著作。随着12世纪该著作在西班牙被翻译和
斐波那契的《计算书》在1201年的出版,该系统传入
欧洲。在欧洲,完整的带零的印度系统是于12世纪由阿拉伯人带来的。
二进制系统由
莱布尼兹在17世纪传播,莱布尼兹在他工作的早期形成了这一概念,并在阅读中国的《
易经》再次巩固了这一想法。由于
计算机的使用,二进制系统在20世纪变得更加普遍。