王朝百科
分享
 
 
 

三进制

王朝百科·作者佚名  2010-04-29  
宽屏版  字体: |||超大  

三进制是“逢三进一,退一还三”的进制。

三进制数码包括“0,1和2。”

三进制数位小数点前从右往左依次是1位,3位,9位,27位,81位,243位……

三进制数位小数点后从左往右依次是3分位,9分位,27分位,81分位……

写时注意应打括号,加下标的3,如(1201)3。读作一二零一,不能读成一千二百零一,这是因为它们对应于27位,9位,3位和1位,不是千百十个位!

一些常见的十进制数换三进制表

十进制 三进制

0 0

1 1

2 2

3 10

4 11

5 12

6 20

7 21

8 22

9 100

10 101

... ...

三进制在实际生活中较少用到,下面举一例:

三进制数是以下问题的答案:

允许在天平两端放置砝码,问N个砝码如何才能称出最多的整克物体?

答案:1.一个砝码取1克,只能称1克。

2.二个砝码取1克,3克

右盘3,左盘1。称2克

右盘3。称3克

右盘1,3。称4克

3.三个砝码取1克,3克,9克

右盘9,左盘1,3。称5克

右盘9,左盘3。称6克

右盘9,1,左盘3。称7克

右盘9,左盘1。称8克

右盘9。称9克

右盘9,1。称10克

右盘9,3,左盘1。称11克

右盘9,3。称12克

右盘9,3,1。称13克

4.四个砝码取1克,3克,9克,27克。

............

其中的1,3,9,27,81等都是三进制数的数位。

定义三进制是以3为底数的进位制。

曾经被莫斯科大学科研人员用于计算机,目前在光子计算机研究领域也有涉及。

对称三进制能比二进制更方便的表示所有整数。

表示形式三进制一般有两种表示形式:

一种是以0,1,2为基本字符的表示形式。例如,365在这种表示形式中的写法是111112。

一种是以-1,0,1为基本字符的表现形式。例如,365在这种表示形式中的写法是1FFFFFF(我们用F表示-1)。这种表示法也被称作对称三进制或平衡三进制

运算规则四则运算

1 普通三进制的四则运算

加法:0+0=0,0+1=1,0+2=2,1+0=1,1+1=2,1+2=10,2+0=2,2+1=10,2+2=11

减法:0-0=0,1-0=1,2-1=1,1-1=0,2-1=1,10-1=2,2-2=0,10-2=1,11-2=2

乘法:0×0=0,0×1=0,0×2=2,1×0=0,1×1=1,1×2=2,2×0=0,2×1=2,2×2=11

除法:0÷1=0,1÷1=1,2÷1=1,1÷2=0.1111...

2 对称三进制的四则运算

加法:F+F=F1,F+0=F,F+1=0,0+F=F,0+0=0,0+1=1,1+F=0,1+0=1,1+1=1F

减法:F-F=0,F-0=F,F-1=F1,0-F=1,0-0=0,0-1=F,1-F=1F,1-0=1,1-1=0

乘法:F×F=1,F×0=0,F×1=1,0×F=0,0×0=0,0×1=0,1×F=F,1×0=0,1×1=1

除法:F÷F=1,F÷1=F,0÷F=0,0÷1=1, 1÷F=F,1÷1=1

3 对称三进制的逻辑运算

或:F∨F=F,F∨0=0,F∨1=1,0∨F=0,0∨0=0,0∨1=1,1∨F=1,1∨0=1,1∨1=1

与:F∧F=F,F∧0=F,F∧1=F,0∧F=F,0∧0=0,0∧1=0,1∧F=F,1∧0=0,1∧1=1

非:¬F=1,¬0=0,¬1=F

与十进制和二进制的比较整数的三进制表示法不如二进制那样冗长,但仍然比十进制要长。例如,365在二进制中的写法是101101101(9个数字),在三进制中的写法是111112(6个数字)。

1到27三进制

1

2

10

11

12

20

21

22

100

对称三进制

1

1F

10

11

1FF

1F0

1F1

10F

100

二进制

1

10

11

100

101

110

111

1000

1001

十进制

1

2

3

4

5

6

7

8

9

三进制

101

102

110

111

112

120

121

122

200

对称三进制

101

11F

110

111

1FFF

1FF0

1FF1

1F0F

1F00

二进制

1010

1011

1100

1101

1110

1111

10000

10001

10010

十进制

10

11

12

13

14

15

16

17

18

三进制

201

202

210

211

212

220

221

222

1000

对称三进制

1F01

1F1F

1F10

1F11

10FF

10F0

10F1

100F

1000

二进制

10011

10100

10101

10110

10111

11000

11001

11010

11011

十进制

19

20

21

22

23

24

25

26

27

3的幂三进制

1

10

100

1 000

10 000

对称三进制

1

10

100

1 000

10 000

二进制

1

11

1001

1 1011

101 0001

十进制

1

3

9

27

81

3(0)

3(1)

3(2)

3(3)

3(4)

三进制

100 000

1 000 000

10 000 000

100 000 000

1 000 000 000

对称三进制

100 000

1 000 000

10 000 000

100 000 000

1 000 000 000

二进制

1111 0011

10 1101 1001

1000 1000 1011

1 1001 1010 0001

100 1100 1110 0011

十进制

243

729

2 187

6 561

19 683

3(5)

3(6)

3(7)

3(8)

3(9)

在三进制中表示三分之一是很方便的,不像在十进制中,需要用无限小数来表示。但是,二分之一、四分之一之类的分数在三进制中都是无穷小数,这是因为2不是3的因子。

小数三进制

0.111111111111...

0.1

0.020202020202...

0.012101210121...

0.011111111111...

0.010212010212...

对称三进制

0.111111111111...

0.1

0.1F1F1F1F1F...

0.1FF11FF11FF1...

0.011111111111...

0.0110FF0110FF...

二进制

0.1

0.010101010101...

0.01

0.001100110011...

0.00101010101...

0.001001001001...

十进制

0.5

0.333333333333...

0.25

0.2

0.166666666666...

0.142857142857...

分数

1/2

1/3

1/4

1/5

1/6

1/7

三进制

0.010101010101...

0.01

0.002200220022...

0.002110021100...

0.002020202020...

0.002002002002...

对称三进制

0.010101010101...

0.01

0.010F010F010F...

0.01F1101F1100...

0.01F1F1F1F0...

0.01F01F01F01F...

二进制

0.001

0.000111000111...

0.000110011001...

0.000101110100...

0.000101010101...

0.000100111011...

十进制

0.125

0.111111111111...

0.1

0.090909090909...

0.083333333333...

0.076923076923...

分数

1/8

1/9

1/10

1/11

1/12

1/13

对称三进制和三进制的比较1.对称三进制采用-1,0,1作为基本字符,而普通三进制采用0,1,2作为基本字符。

2.对称三进制不需要符号位就能表示负数,而普通三进制需要符号位才能表示负数。

3.对称三进制乘法比较简单,移位、取非、相加就可以完成,便于处理;普通三进制,处理起来比较麻烦。

4.对称三进制在表示自然数的时候,比普通二进制要长。

5.对称三进制在表示0.5〈10〉~1〈10〉之间的数的时候,整数部分为1,不直观;普通三进制没有这种现象。

其他进制到三进制的转换整数部分,一般使用长除法,用基数除待转换数或上一步的商,求得余数或补数,直至最后的商为零。将各次余数从后往前排列,即为目标进制下的整数部分。小数部分,一般使用长乘法,用基数乘待转换数或上一步的积,求得整数部分,将证书部分从前往后排列,即为目标进制下的小数部分正负数需要分别处理。

1 十进制到普通三进制

例如,2356

2356/3=785余1,785/3=261余2,261/3=87,87/3=29,29/3=9余2,9/3=3,3/3=1,1/3=0余1

以上得知,2356的三进制为10020021

2 十进制到对称三进制

例如,2356,

2356/6=785余1;785/3=262少1,262/3=87余1,87/3=29,29/3=10少1,10/3=3余1,3/3=1,1/3=0余1

以上得知,2356的对称三进制为101F01F1

3 二进制到对称三进制

3.1 正数

比如0111 1010(十进制122)

01111010/11=101001少1;101001/11=1110少1;1110/11=101少1;101/11=10少1;10/11=1少1;1/11=0余1

01111010的对称3进制为1FFFFF

3.2 负数

比如1011 1010(-70)

取原码-1000110

1000110/11=10111余1;10111/11=1000少1;1000/11=11少1;11/11=1;1/11=0余1

得10FF1,逐位取非,得对称三进制为F011F

对称三进制计算机现今的计算机都使用“二进制”数字系统,尽管它的计算规则非常简单,但其实“二进制”逻辑并不能完美地表达人类的真实想法。相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。在三进制逻辑学中,符号“1”代表“真”;符号“-1”代表“假”;符号“0”代表“不知道”。显然,这种逻辑表达方式更符合计算机在人工智能方面的发展趋势。它为计算机的模糊运算和自主学习提供了可能。只可惜,目前电子工程师对这种非二进制的研究大都停留在表面或形式上,没有真正深入到实际应用中去。

不过,凡事都有一个例外,三进制计算机并非没有在人类计算机发展史上出现过。其实,早在上世纪50、60年代。一批莫斯科国立大学的研究员就设计了人类历史上第一批三进制计算机“Сетунь”和“Сетунь 70”(“Сетунь”是莫大附近一条流入莫斯科河的小河的名字)。

“Сетунь”小型数字计算机的设计计划由科学院院士С·Л·Соболев在1956年发起。这个计划的目的是为大专院校、科研院所、设计单位和生产车间提供一种价廉物美的计算机。为此,他在莫大计算机中心成立了一个研究小组。该小组最初由9位年轻人(4名副博士、5名学士)组成,都是工程师和程序员。С·Л·Соболев、К·А·Семендяев、М·Р·Шура-Бура和И·С·Березин是这个小组的永久成员。他们经常在一起讨论计算机架构的最优化问题以及如何依靠现有的技术去实现它。他们甚至还设想了一些未来计算机的发展思路。

随着技术的进步,真空管和晶体管等传统的计算机元器件逐渐被淘汰,取而代之的是速度更快、可靠性更好的铁氧体磁芯和半导体二极管。这些电子元器件组成了一个很好的可控电流变压器,这为三进制逻辑电路的实现提供了可能,因为电压存在着三种状态:正电压(“1”)、零电压(“0”)和负电压(“-1”)。三进制逻辑电路非但比二进制逻辑电路速度更快、可靠性更高,而且需要的设备和电能也更少。这些原因促成了三进制计算机“Сетунь”的诞生。

“Сетунь”是一台带有快速乘法器的时序计算机。小型的铁氧体随机存储器(容量为3页,即54字)充当缓存,在主磁鼓存储器中交换页面。这台计算机支持24条指令,其中3条为预留指令,目前不用。

三进制代码的一个特点是对称,即相反数的一致性,因此它就和二进制代码不同,不存在“无符号数”的概念。这样,三进制计算机的架构也要简单、稳定、经济得多。其指令系统也更便于阅读,而且非常高效。

在这群天才青年日以继夜的开发和研制下,“Сетунь”的样机于1958年12月准备完毕。在头两年测试期,“Сетунь”几乎不需要任何调试就运行得非常顺利,它甚至能执行一些现有的程序。1960年,“Сетунь”开始公共测试。

1960年4月,“Сетунь”就顺利地通过了公测。它在不同的室温下都表现出惊人的可靠性和稳定性。它的生产和维护也比同期其它计算机要容易得多,而且应用面广,因此“Сетунь”被建议立即投入批量生产。

不幸的是,苏联官僚对这个不属于经济计划一部分的“科幻产物”持否定的态度。他们甚至勒令其停产。而此时,对“Сетунь”的订单却如雪片般从各方飞来,包括来自国外的订单,但10到15台的年产量远不足以应付市场需求,更不用说出口了。很快,计划合作生产“Сетунь”的捷克斯洛伐克工厂倒闭了。1965年,“Сетунь”停产了。取而代之的是一种二进制计算机,但价格却贵出2.5倍。

“Сетунь”总共生产了50台(包括样机)。30台被安装在高等院校,其余的则在科研院所和生产车间落户。从加里宁格勒到雅库茨克,从阿什哈巴德到新西伯利亚,全苏都能看到“Сетунь”的身影。各地都对“Сетунь”的反应不错,认为它编程简单(不需要使用汇编语言),支持反向波兰表示法,适用于工程计算、工业控制、计算机教学等各个领域。

有了“Сетунь”的成功经验,研究员们决定不放弃三进制计算机的计划。他们在1970年推出了“Сетунь 70”型计算机。“Сетунь 70”对三进制的特性和概念有了进一步的完善和理解:建立了三进制字节——“tryte”(对应于二进制的“byte”),每个三进制字节由6个三进制位(“trit”,约等于9.5个二进制位“bit”)构成;指令集符合三进制逻辑;算术指令允许更多的操作数长——1、2和3字节(三进制),结果长度也扩展到6字节(三进制)。

对“Сетунь 70”而言,传统计算机的“字”的概念已经不存在了。编程的过程就是对三进制运算和三进制地址的操作。这些基于三进制字节的命令将会通过对虚拟指令的编译而得到。当然,程序员们不必考虑这些——他们只需直接和操作数及参数打交道即可。

“Сетунь 70”是一台双堆栈计算机。其回叫堆栈用来调用子程序。这一简单的改进启发了荷兰计算机科学家艾兹格·W·迪科斯彻,为他日后提出“结构化程序设计”思想打下了基础。

“Сетунь 70”成了莫斯科国立大学三进制计算机的绝唱。由于得不到上级的支持,这个科研项目不得不无限期停顿下来。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有