三進位

三进制是以3底数进制。和二进制一样,三进制的数位,称为三进制位(trit),每个三进制位包含(约1.58个)二进制位的信息量。通常,三进制中使用0、1、2三个数字。但在平衡三进制中,则使用-1(记作T)、0、1来表达。

记数系统
印度-阿拉伯数字系统
西方阿拉伯数字
阿拉伯文数字
高棉數字
孟加拉数字
印度數字
波羅米數字
泰语数字
漢字文化圈記數系統
中文数字
閩南語數字
越南语数字
算筹
日語數字
數字
苏州码子
字母記數系統
阿拉伯字母數字
亚美尼亚数字
西里爾數字
吉茲數字
希伯來數字
希腊数字
阿利耶波多數字
其它記數系統
阿提卡數字
巴比倫數字
古埃及数字
伊特拉斯坎數字
玛雅数字
罗马数字
熙笃会数字
卡克托维克数字
底数区分的进位制系统
1 2 3 4 5 6 8 9 10 11 12
16 20 36 60

表示形式

例如,365(10)在常见的三进制表示法中的写法是111112(3)

运算规则

三进制的四则运算

+012
0 012
1 1210
2 21011
-012
0 012
1 -102
2 -2-10
×012
0 000
1 012
2 0211
÷012
0 NaNNaNNaN
1 012
2 00.11

与其他进制的比较

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

1到33
三进制 121011122021221001011021101111121201211222002012022102112122202212221000
二进制 1101110010111011110001001101010111100110111101111100001000110010100111010010101101101011111000110011101011011
六进制 1234510111213141520212223242530313233343540414243
十进制 123456789101112131415161718192021222324252627
3的幂
三进制 1101001 00010 000100 0001 000 00010 000 000100 000 0001 000 000 000
二进制 11110011 1011101 00011111 001110 1101 10011000 1000 10111 1001 1010 0001100 1100 1110 0011
六进制 131343213104332131404350213231043
十进制 13927812437292187656119683
30313233343536373839

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

小数
三进制 0.10.10.020.01210.010.0102120.010.010.00220.002110.0020.002
二进制 0.10.010.010.00110.0010.0010.0010.0001110.000110.00010111010.00010.000100111011
六进制 0.30.20.130.10.10.050.0430.040.030.0.03134524210.030.024340531215
十进制 0.50.30.250.20.160.1428570.1250.10.10.090.0830.076923
六进分数 1/21/31/41/51/101/111/121/131/141/151/201/21
十进分数 1/21/31/41/51/61/71/81/91/101/111/121/13
三进制 0.10.20.200.21010.210.2120100.210.220.22000.220110.2200.220
二进制 0.10.100.110.11000.1100.1100.1110.1110000.111000.11101000100.11100.111011000100
六进制 0.30.40.430.40.50.500.5130.520.520.52421031340.530.531215024340
十进制 0.50.60.750.80.830.8571420.8750.80.90.900.9160.923076
六进分数 1/22/33/44/55/1010/1111/1212/1313/1414/1515/2020/21
十进分数 1/22/33/44/55/66/77/88/99/1010/1111/1212/13



其他进制到三进制的转换

整数部分一般使用连除法。用3除待转换数或上一步的商,求得余数,直至最后的商为零。将各次余数从后往前排列,即为目标进制下的整数部分。

小数部分一般使用连乘法。用3乘待转换数或上一步的积,求得整数部分,将整数部分从前往后排列,即为目标进制下的小数部分。

正负数需要分别处理。

十进制到普通三进制

例如,2356

    2356÷3=785余1 ↑
     785÷3=261余2 |
     261÷3=87 余0 |
      87÷3=29 余0 |
      29÷3=9  余2 |
       9÷3=3  余0 |
       3÷3=1  余0 |
       1÷3=0  余1 |
     2356的三进制为10020021

例如,1.4

             1.4        向下圆整为1|,余0.4♦
       0.4×3=1.2        向下圆整为1|,余0.2
       0.2×3=0.6        向下圆整为0|,余0.6
       0.6×3=1.8        向下圆整为1|,余0.8
       0.8×3=2.4        向下圆整为2↓,余0.4 进入循环
       1.4的三进制为1.1012

例如,1/5

               1/5        向下圆整为0|,余1/5♦
       1/5×3=  3/5        向下圆整为0|,余3/5
       3/5×3=1 4/5        向下圆整为1|,余4/5
       4/5×3=2 2/5        向下圆整为2|,余2/5
       2/5×3=1 1/5        向下圆整为1↓,余1/5,进入循环
       1/5的三进制为0.0121

也可以用基本公式来计算。

             25.410=2*1011+12*1010+11*101-1
                  =2*101+12+11/101
                  =202+12+0.1012
                  =221.1012

三进制计算机

早在上世纪50、60年代,一批莫斯科国立大学的研究员就设计了人类历史上第一批三进制计算机“”和“”(“”是莫大附近一条流入莫斯科河的小河的名字)。

“”是一台带有快速乘法器的时序计算机。小型的铁氧体随机存储器(容量为3页,即54字)充当缓存,在主磁鼓存储器中交换页面。这台计算机支持24条指令,其中3条为预留指令,目前不用。“”总共生产了50台(包括样机)。从加里宁格勒到雅库茨克,从阿什哈巴德到新西伯利亚,全苏都能看到“”的身影。各地都对“”的反应不错,认为它编程简单(不需要使用汇编语言),适用于工程计算、工业控制、计算机教学等各个领域。

“”是一台双堆栈计算机。其回叫堆栈用来调用子程序。这一简单的改进启发了荷兰计算机科学家艾兹格·W·迪科斯彻,为他日后提出“结构化程序设计”思想打下了基础。“”成了莫斯科国立大学三进制计算机的绝唱。由于得不到上级的支持,这个科研项目不得不无限期停顿下来。

TERNAC

TERNAC 是一部三进制计算机,由纽约州立大学在1973年实现。TERNAC提供整数和浮点数,整数的长度是24个三进制位。浮点数采用科学计数法表示,尾数部分长42个三进制位,指数部分长6个三进制位。 Ternac计算机起初是验证在二进制计算机上实施非二进制结构的可行性,并确认在存储容量和时间上花费。作为一个可行性测试,这个尝试是成功的。第一个版本的实现证明,其速度和价格和二进制计算机相似。

参考

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.