三进制分数化为二进制制算法

不同进制之间的转换 - lovebeauty - 博客园
随笔 - 262, 文章 - 0, 评论 - 31, 引用 - 0
一、 二进制与十进制之间的转换
&& a.二进制转十进制(不分整数和小数从最后一位算起,每一位上的数乘以2的几次方,这个次数由这个数字所在的位置决定,从零位开始,然后相加) & 转十进制:
第-3&& 1乘2的-3次方=0.125第-2&& 0乘2的-2次方=0第-1&& 0乘2的-1次方=0第0位& 1乘2的0次方=1& 1&& 1乘2的1次方=2& 2  0乘2的2次方=0& 3  1乘2的3次方=8 & 4&& 0乘2的4次方=0& 5&& 1乘2的5次方=32& 6  1乘2的6次方=64& 7  0乘2的7次方=0
然后:1+2+0+8+0+32+64+0=107.1257& b.十进制转二进制
(整数:除2取余法是一个连续除2的过程,直到商出现0时位置,余数反向排列;)整数23 转二级制:23除2商11余111除2商5余1&5除2商2余1&2除2商1余0&1除2商0余1然后把余数反向排列 :23=10111
(小数:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分
为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数)
0.125 转二进制
第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;
第四步,读数,从第一位读起,读到最后一位,即为0.001。
23.125 转二进制
0.45 转二进制(保留到小数点第四位)
第一步,将0.45乘以2,得0.9,则整数部分为0,小数部分为0.9;第二步, 将小数部分0.9乘以2,得1.8,则整数部分为1,小数部分为0.8;第三步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;第四步, 将小数部分0.6乘以2,得1.2,则整数部分为1,小数部分为0.2; 算到这一步就可以了,因为只需要保留四位小数第五步, 将小数部分0.2乘以2,得0.4,则整数部分为0,小数部分为0.4;第六步, 将小数部分0.4乘以2,得0.8,则整数部分为0,小数部分为0.8;后面会一直循环重复第七步, 将小数部分0.8乘以2,得1.6,则整数部分为1,小数部分为0.6;
。。。。。。读整数不分,从第一位读起,读到最后一位,即为0.0111。
23.45(保留到小数点第四位)
二、 二进制与八进制之间的转换(基础还是二进制和十进制之间的转换)
(取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到 的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位 时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位)这里的最高位,最低位和十进制的一样,前面的是最高位,后面的是最低位
&& 三位二进制表示一位八进制, 因为三位二进制数最大(111)的十进制数也就是7,所以就保证每位数都是0-7之间的数
&& a.二进制转八进制
1100100 拆分成 : 001 100 100001 1 这是由二级制转换成十进制得来的
0*2^1 + 1*2^0 = 1100 4
1*2^2 + 0*2^1 + 0*2^0 = 4100 4
1*2^2 + 0*2^1 + 0*2^0 = 4依次读下来就是 1444
&& b.八进制转二级制(脑海中有个概念,那就是你要用十进制转二进制先算出0-7每个数的二级制数表达方式,还是一样不够三位补零)
000 0001 1010 2011 3100 4101 5110 6111 7
有了上面这个表,随便报一个数653524,你要明白八进制上的一位就对应三位二进制,653524有6位,所以二进制数就有3*6=18位,6用110代替,5用101代替,依次下来就是
110 101 011 101 010 100
三、 二进制与十六进制之间的转换(基础还是二进制和十进制之间的转换)
&& 四位二进制表示一位十六进制, 因为四位二进制数最大(1111)也就是十进制的表示法15即十六进制的表示法F,所以就保证每位数都是0-F之间的数
&& a.二进制转十六进制
同样还是上面这个数:1100100 拆分
0110 60100 41100100& = 64b.十六进制转二进制(脑海中有个概念,那就是你要先算出0-F每个数的二级制数表达方式,还是一样不够四位补零)1-00012-00103-00114-01005-01016-01107-01118-10009-1001A-1010B-1011C-1100D-1101E-1110F-1111四、 十进制与十六进制之间的转换(其算法和二进制和十进制之间的算法一样只是,由2变成了16)
十进制与八进制之间的转换(其算法和二进制和十进制之间的算法一样只是,由2变成了8)
a.十进制转十六进制
123 转成十六进制
123除16商7余B
7除16商0余7
结果就是7B
b.十六进制转二进制
十六进数 2AF5
第0位: 5 * 16^0 = 5第1位: F * 16^1 = 240第2位: A * 16^2 = 2560第3位: 2 * 16^3 = 8192
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 109972AF5 = 10997五、其他:八进制与十六进制、八进制与十进制之间的转换利用上面的关系就很简单了,比如八进制先换成二进制,再由二进制转换成十六进制
各进制与十进制之间的转换
有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数
比如八进制数: 34 = 3*8^1 + 4*8^0 = 28
六、不常用进制(所谓几进制就是逢几进1,退1还几)
三进制、四进制、五进制、。。。、n进制
n进制:脑海中有个概念,那就是你要用十进制转二进制先算出0-(n-1)每个数的二级制数表达方式,还是一样如果不够(log以2为底n的对数,不足1,结果则为1;大于1并且有小数,加1,取整数)位数,,左边补上(前面的结果-1)个零
比如四进制就是,那就是你要用十进制转二进制先算出0-3每个数的二级制数表达方式,还是一样不够补(log以2为底4的对数)位数,左边补上(2-1)个零
比如五进制就是,那就是你要用十进制转二进制先算出0-4每个数的二级制数表达方式,还是一样不够补(log以2为底5的对数+1)位数,左边补上(3-1)个零
比如八进制就是,那就是你要用十进制转二进制先算出0-7每个数的二级制数表达方式,还是一样不够补(log以2为底8的对数)位数,左边补上(3-1)个零为什么三进制计算机没有流行下来?如果现在是三进制会怎么样? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
Sponsored by
国内领先的实时后端云野狗 API 可用于开发即时聊天、网络游戏、实时定位等实时场景传输快!响应快!入门快!
Promoted by
为什么三进制计算机没有流行下来?如果现在是三进制会怎么样?
15:08:41 +08:00 · 10960 次点击
在公开课看到一个问题觉得很牛比啊。如下:现今的计算机都使用“二进制”数字系统,尽管它的计算规则非常简单,但其实“二进制”逻辑并不能完美地表达人类的真实想法。相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。在三进制逻辑学中,符号“1”代表“真”;符号“-1”代表“假”;符号“0”代表“不知道”。显然,这种逻辑表达方式更符合计算机在人工智能方面的发展趋势。它为计算机的模糊运算和自主学习提供了可能。只可惜,电子工程师对这种非二进制的研究大都停留在表面或形式上,没有真正深入到实际应用中去。不过,凡事都有一个例外,三进制计算机并非没有在人类计算机发展史上出现过。其实,早在上世纪50、60年代。一批莫斯科国立大学的研究员就设计了人类历史上第一批三进制计算机“Сетунь”和“Сетунь 70”(“Сетунь”是莫大附近一条流入莫斯科河的小河的名字)。来源:百度百科:三进制如上面的资料所示,三进制已经做出来过了,而且在当初的时候不管是从价格还是性能上面都要远优于当时的二进制计算机,而且拥有二进制计算机所没有的优点,但是当时的苏联官僚认为不符合当时的经济计划,结果这种三进制计算机计划被无限搁置。我查了很长时间的资料,但是网上的资料不算多,最后也无法得出为什么没有流行的根本性原因,所以特意发来这里,看看有没有人能够解疑我多年的疑惑。问题是:1.如果现在是用三进制计算机的话会是怎么样的情况?2.在现有的技术去做三进制计算机会不会拥有超过二进制计算机的性能和优点?(不考虑制造二进制计算机所积累的经验,假设两种计算机的科技水平一致!)3.为什么没有流利下来?有缺点?还是如QWERT键盘对比DVORAK键盘一样,典型的“劣势产品战胜优势产品”?
55 回复 &| &直到
13:16:28 +08:00
& & 15:09:35 +08:00 via iPhone
三进制如何用电路表达?
& & 15:15:32 +08:00
对于现在的计算机和程序,“不知道”这个应该很难用到吧?用1/3的可能结果来专门表示一个几乎用不到的结果,太浪费了。
要用三进制表示“不知道”来开发模糊运算、人工智能,完全可以用两个二进制位来做,改用三进制并不会有质变。
另外现在二进制计算机的技术,基本上没法用在三进制计算机上,完全得从头做起。
& & 15:30:33 +08:00
我感觉这个问题非常像:为什么早就有lisp理论上这么先进的东西存在了,但在现实世界中流行起来的却是&丑陋&的类c系列语言。Ternary computer现在还在不断研究,比如ibm一直在研究,和量子计算机也产生了关联,但这些还都在理论层面paper上,就像现在各种FP语言又热了起来,但实际生产环境中还是类c语言大行其道。
& & 15:31:33 +08:00 via Android
二进制符合阴阳理论。嗯,就是这样~
& & 15:36:40 +08:00
根据我了解过的资料,我大概只记得下面这两点
1)三进制计算机是美苏冷战的产物
2)三进制电子管不稳定
& & 15:39:49 +08:00
首先,把“接近人类的思维方式”作为评价计算机好坏的标准,是一种自大不切实际的标准。
实际上,人类科学能走到今天这一步,很大程度上依赖于各种”反人类、反直觉“的理论。
三进制为什么没能流行的原因,很大程度上是由底层硬件原理决定的。
数字电路只能有效的表达开/关两种状态,所以原生二进制。
DNA计算机是四进制,因为有ATCG四种碱基。
量子计算机视最终能获得的量子叠加态数量,可能是更高进制的。
如果计算机真是三进制的,用来老老实实编码,必然比增加一个“不知道”的位更经济、更高效。
32位二进制bit能编码最大2^32-1的无符号数,而32位三进制bit能编码到3^32-1。
假如CPU主频一致,同是32位长寄存器,3进制计算机的运算能力更强。
真正要模糊计算的话,现在的做法是用fuzzy logic,给输出量同时赋予一个概率,这比起多一个非黑即白的“不知道”位,更加“接近人类思维方式”。
& & 15:41:43 +08:00 via iPhone
在计算机世界里 知道和不知道的中间值
要么知道 只是多少
要么不知道 得不到值 假
不会存在 你所说的模糊情况
人的思维的圆滑 不能直接运用在计算机上
为什么就经常有人说 程序
代码是不会骗人的
它不能也不会对我们说不知道
对和错 非常的鲜明
所以从这个角度来说
三进制取代二进制
没有讨论的必要性
他可以以 类似 八进制
十六进制形式存在
& & 15:47:00 +08:00
在电子上三进制不好进行表达,不过量子可以有多种状态,估计量子计算机可能使用三进制吧。
& & 15:57:29 +08:00
查了些英文的文档,百度百科的词条很多说法不靠谱。
百度百科词条明显把三值逻辑运算和三进制编码给搞混了,三进制计算机底层编码采用的是平衡三进制(http://en.wikipedia.org/wiki/Balanced_ternary),优点是表达正负数同样容易,不存在有无符号的蛋疼。
三进制计算机目前复活的可能性是光计算机(http://www.iop.org/EJ/abstract/05/T118/025/)或者量子计算机(/2009/08/qudits-multilevel-versions-of-qubits.html),可以很容易原生表示三进制。光计算机可以用无光表示0,两种正交极化方向的光表示+1或-1;量子计算机量子叠加态多到用不完,自然不用多说。
这里有个三进制计算机的模拟器:
总之,要学到靠谱的知识,远离百度百科。
& & 16:05:26 +08:00
@ 断,通(AtoB的电流),通(BtoA的电流)我想应该是可以的
& & 16:18:16 +08:00
现代科技里半导体电子电路的基础就是通和断,这就是二进制的,电路里没法做出不知道通断。再比如说以前最老式的打孔计算机,一个纸带的同一位置上只会是有孔或者无孔,没有说不知道有没有孔这个概念
世间万物也都有阴阳的属性,看似中性只不过是阴阳属性均等罢了。二是变化的最基本单元,所谓一生二 二生三 三生万物。
& & 16:24:41 +08:00
@ 明显的,你这是人的逻辑,用在电路中,你会蛋疼死的
& & 16:26:59 +08:00
三进制在电子计算机中的实现方式是:
正电压 +1
零电压 0
负电压 -1
等于是有两种不同的“开”状态。这会大幅度的增加系统的复杂度。
所以也就只有早期晶体管数少的时候能造出来,随着规模的增加,按当时的科技水平,可能很快就会遇到瓶颈。
如果当初整个行业真点了三进制的科技树,可能计算机运算能力的提升速度会严重变慢,摩尔定律不会出现,人类整体科技发展速度都会放缓。
这个话题还是比较有意思的,至少成功的就要混到晚饭时间了。
& & 16:28:16 +08:00
@ 赞『首先,把“接近人类的思维方式”作为评价计算机好坏的标准,是一种自大不切实际的标准。』
我们AI课老师当时说过一句话 不要一直说把自己当个机器觉得很鄙视机器一样,实际你要真能把自己当一个机器是把你的层次提高了
& & 16:28:52 +08:00
百科上的
随着技术的进步,真空管和晶体管等传统的计算机元器件逐渐被淘汰,取而代之的是速度更快、可靠性更好的铁氧体磁芯和半导体二极管。这些电子元器件组成了一个很好的可控电流变压器,这为三进制逻辑电路的实现提供了可能,因为电压存在着三种状态:正电压(“1”)、零电压(“0”)和负电压(“-1”)。三进制逻辑电路非但比二进制逻辑电路速度更快、可靠性更高,而且需要的设备和电能也更少。这些原因促成了三进制计算机“Сетунь”的诞生。
& & 16:31:58 +08:00
谢谢...远离百度百科
& & 16:36:24 +08:00
百度一下 你就上当
& & 16:52:59 +08:00
@ 二进制有一个状态叫dont care,用x表示,就是说当前取值1或0对结果都没有影响,比如一个OR gate,如果一个input是1,那么另外一个input就是x了。感觉和你所说的不知道比较像。但是实在无法联想到和机器学习还有人工智能有什么直接的联系。
百科上那个随着科技的进步XXXXX,然后出现了正负和0电压。我感觉BJT和mosfet都没有这种状态。不知道前瞻到什么科技时代去了...... 其实二进制是目前最好的传统电路实现因为现在vlsi的mosfet特性就是这样的,可以去看看一个mosfet级的nor gate怎么实现的就能了解为什么二进制很不错了。
& & 16:56:53 +08:00
还是认为 1 楼一早就提到了瓶颈。电压通常不是说正负平的,而是高低与否。能否准确且低耗地实现三种状态才是第一重要的。
& & 17:15:20 +08:00
@ 可以试一下 Google 的这个模拟器,听说最近的 D-Wave 量子电脑可以进行将运算过程逆过来进行:
& & 17:50:46 +08:00
我个人觉得光纤可能没法三进?
& & 18:06:39 +08:00
相信这种文摘的到底懂计算机原理么?
& & 19:09:52 +08:00
晶体管上的电压不稳定吧,所以可能会产生很多错误。就如上面说的0电压表示0,这个是很难控制的
& & 19:16:09 +08:00
十进制流行的原因是我们有十根手指
二进制流行的原因是电压高低表示自然、简单
& & 21:21:51 +08:00
简单既智能。
& & 21:29:26 +08:00
lz你看的是什么公开课?看看是哪个丢人现眼的学校老师。瞎掰人工智能也先读两本计算机书再来好吧。
& & 21:30:05 +08:00
简直误人子弟
& & 21:32:45 +08:00
编程语言和硬件的转化执行效率
& & 22:00:17 +08:00
我怎么记得上学插板的时候的时候电压根本不稳,根本不可能有0电压嘛。都是给个reference值然后超过多少表示1,低于多少表示0 =。=
& & 22:31:29 +08:00
@ 不明觉厉
& & 22:44:17 +08:00
@ 现代CPU都是半导体元件构建的,只有通和断。只要在正常工作电压下,即使有轻微波动,都不会影响计算准确性。
& & 22:44:44 +08:00 via Android
曼彻斯特编码
& & 22:54:13 +08:00
『相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”』
只有文科生才会这么想当然的联想吧,什么时候二进制里的0和1表达的意思是答案的“是”和“否”了?还冒出个“不知道”,要不再增加个“我不知道”,“你小子也不知道”,更接近大脑思维。
计算机就是你给个算式(程序),它按你的要求算出个结果,这个结果就是一个数字,然后科学家和工程师们实践后,至少到目前为止二进制作为中间运算是最高效率的(包括制造工艺上)。
至于你想用什么进制去表达这个数字,那随便你啦。
& & 22:57:08 +08:00
的答案就已经很全面啦
三进制计算机关键是材料问题吧,在计算上三进制是最优定义。
而且你见过那种普通材料具有三个状态的,苏联的三进制严格来说应该算伪三进制。
//
e进制是信息表示的最优解先考虑最优的定义
假定总共有n位,每位m个状态,m*n=v
在v一定时,使得m^n最大
也就是k(n)=(v/n)^n最大
考虑一般情况下
ln(k(n))=(ln(v)-ln(n))*n=ln(v)*n - ln(n)*n
对n求导 ln(v) - (n*1/n + ln(n)) = ln(v) - 1 - ln(n)
解得ln(n)=ln(v)-1是k(n)唯一的极值点
易知是k(n)最大值点
所以n=v/e m=e=2.时,k(n)最大
显然3进制比二进制更接近e值
//
参考:
& & 08:17:25 +08:00
对这个计算过程的理解没问题。。
只是,V的意义是什么?为什么要以V=M*N为参考基准?
& & 08:43:23 +08:00
@ 看你楼上说的。要电压高于或低于指定阈值时才算 1 或 0 ,因为电压不稳。
同样地,由于电压不稳,假如要用正电压、负电压、零电压来表示三种状态,除了要设定更多的阈值外,还要看有没有对应的低耗的状态监测工具。假如为了监测更多的状态而大大增大了电路的体积或电路材料的开销,那肯定是得不偿失的。量子电脑有先天优势,可以用量子来表示三种状态,可是量子电脑的造价,还不清楚,电脑能变得多小也不太清楚……
& & 08:44:47 +08:00
@ 不知道 @ 的哪一楼真辛苦,我也暂搞不懂那个 Google 模拟器。
& & 08:48:12 +08:00
@ 因为那是指具体有多少个电路单位。在同样的单位下,三进制理论上是最省材料的,可是以各种材料的体积和材料一样为基准的。
& & 08:50:32 +08:00
@ 打错字。「……可这是以各种单位的体积和性价比一样为基准的,只是电路单位提供的状态不同。」
& & 08:56:45 +08:00
@ 请当我没说过,没看清楚那是总状态数。实际上应该考虑位的个数,还是状态的个数,应该要再看看具体运算时要怎么提高效率,所以我暂还是不太认同 @ 的看法。
& & 09:48:16 +08:00
虽然我只选修了一学期的EE的学渣。。。
随便找了下Data Sheet,举例来说小霸王上的6502这种古老的CPU也是有高低电压的阀值定义的(Page 3)并不是简单的通断。
& & 10:00:04 +08:00
@ 为何如此较真...服了...
& & 10:03:27 +08:00 via iPhone
@ 因为闲嘛???
& & 10:22:43 +08:00
@ 发现我越想越混乱了,m^n 表示信息种类的个数,m*n 我想应该就是表示电路材料的数量,三进制能够用同样多的标准材料来容纳最多的信息。@sheldom 这样应该没理解错了?
& & 10:33:51 +08:00
@ 这不光是可行与否的问题,理论上还可以把GND到Vcc之间分10个level,直接撸出十进制。
但工程上还有更多的考虑,复杂度、可靠性、成本、可扩展性。
虽然毛子撸出来那个三进制计算机号称可靠性更高,那也只是因为系统简单而已,而且也只是和当年的二进制电路比。
现在i7 CPU晶体管的规模是14亿+,如果三进制,每个逻辑单元要有两条供电线,不管是布线还是EMC设计,比起二进制单供电线实现起来不是蛋疼了一点半点。
我个人严重怀疑如果当年选择了三进制,到今天CPU能造出14亿+晶体管的规模。
& & 10:46:44 +08:00
好像@错人了
然后你举的那个例子说明的不是数字电路“不是简单的通断”,而是在工程上如何实现了“简单的通断”。
理想的数字信号是能瞬时从0跳转到1或者反之,时序图的上升/下降边缘是与时间轴垂直的,但实际中做不到,所以才需要一个触发阈值。
最后达到的效果,依然是简单的通断。
& & 10:49:32 +08:00
@ 见http://en.wikipedia.org/wiki/Signal_edge
& & 10:55:01 +08:00
感觉三进制和二进制没啥区别。只要还是在进制上面做文章,整个计算机的体系就没啥本质的区别。
& & 11:56:15 +08:00
@ 目前本帖最好的解释。
& & 13:20:06 +08:00 via iPhone
进制越多 误差越大
& & 14:34:51 +08:00
以下为 三进制计算Demo
运行程序:print 102+201*112*200*2
运行结果:0 (不知道)
& & 16:29:23 +08:00
当时是二进制更便宜,容易实现。
二进制也更清晰易懂。
& & 17:39:26 +08:00
量子bit还是2bit呢,还需要对应的逻辑理论来支撑,都不知道是不是我们有生之年能看到的产物。不是不用更多单位描述,而是局限于硬件,为了极致的利用硬件资源,才有了现在的计算机体系。比如内存管理等,如果底层不用线性存储,而是以树结构、网结构或图结构,现在算法理论将不会偏向于线性结构滴。要实现KV存储,只需要使用Trie树就可以了,多单纯,哈哈。
& & 13:08:29 +08:00
@ 其实我更好奇,为什么会有摩尔定律?晶体管一直越来越小,没有限度的么?
& & 13:16:28 +08:00
@ 摩尔定律是对现象的一个描述,而不是现象的原因。
晶体管的大小显然是有限制的,现在基本上已经快触顶了。
& · & 1034 人在线 & 最高记录 2011 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.3 · 67ms · UTC 15:55 · PVG 23:55 · LAX 08:55 · JFK 11:55? Do have faith in what you're doing.君,已阅读到文档的结尾了呢~~
运用二进制和三进制求解数学趣题趣题,解决,数学,二进制,二进制与,三进制,二进制领域,二进制数,二进制算法,二进制转换
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
运用二进制和三进制求解数学趣题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口将二进制数111(2)化为十进制数果为15将所得的十进制数为三进数的结果为(120)(3).【考点】.【专题】计算题.【分析】本题考查的知识点是算法的概念,由其它进制与十进制之间的转化的方法,我们只要依次累加各位数字上的数×该数位的权重,即可得到相对的十进制数,再用除3求余法可得相应原三进制数.【解答】解:1111(2)=1×20+1×21+1×22+1×23=15,∵15÷3=5…0,5÷3=1…2,1÷3=0…1故15=120(3)故答案为:15,120(3)【点评】本题考查的知识点是十进制与其它进制之间的转化,其中熟练掌握“除k取余法”和“累加权重法”的方法步骤是解答本题的关键.声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。答题:翔宇老师 难度:0.78真题:1组卷:3
解析质量好中差
&&&&,V2.32994三进制数的对称表示法
想出三进制数的对称表示法是从一道数学题开始的:
&最少需要多少个砝码可以在一台天平上称出从1千克到40千克之间的任何整数千克的重量?&
先推算出答案是只需要4个砝码,质量为1,3,9,27千克。然后就一直在想为什么这几个数字是3的n次方呢?后来终于想明白了:每个砝码有放左边、不放、放右边三种选项,相当于可以取1,0,-1三种数值,因此问题的本质就是这是一种三进制的计数法。如果只允许砝码在天平的一边放,就会对应为二进制的计数法。
以前学过的三进制数是用0,1,2表示的,用1,0,-1也可以吗?推算一番就会发现果然可以,而且更好用。为了书写方便,用F表示-1,1在个位表示1,进位后10表示3,F在个位表示-1,所以1F就是2。以四位数的三进制数为例,与十进制数的对应关系如下:
四位数的三进制数总共可以表示3^4=81个数字。我们看到正数和负数是用统一的规则表示的,而在二进制数中负数需要一种新的规则。三进制代码的一个特点是对称,即相反数的一致性,不存在&无符号数&的概念。本以为这是我独创的一种想法,网上一搜发现这种表示法早已有之,叫做对称三进数表示法。
三进制数的小数位也是三进制的,以前面的天平为例,再加入1
27千克这三个砝码,就可以把测量精度提高到1
下面看一下对称三进数的计算规则:
0-1 = -1 = F
0-F = -F = 1
运算规则就是0,1,-1之间的运算,非常简单。根据这个可以设计一个三进制的算盘,上面一排表示+1,下面一排表示-1,珠算口诀也比十进制的算盘简单很多。
用正电压、零电压、负电压分别表示1、0、-1,有可能造出三进制的电子计算机。事实上,前苏联莫斯科国立大学在1956年至1965年设计和制造了三进制计算机&Сетунь&,1970年又推出了&Сетунь
70&,定义了三进制字节&&&tryte&,每个三进制字节由6个三进制位组成(取值范围是-364到+364),指令集符合三进制逻辑,算术指令允许操作数长为1、2和3字节(三进制),结果长度也扩展到6字节。据说三进制计算机的架构简单、稳定、经济,三进制逻辑电路比二进制逻辑电路速度更快。高德纳预测未来的光计算机和量子计算机会再次使用三进制计数法,用没有光线表示0,用纵向和横向的线偏光表示1和-1。
在三进制逻辑学中,符号&1&代表&真&;符号&-1&代表&假&;符号&0&代表&不知道&。在一般情况下,我们对问题的看法不是只有&真&和&假&两种答案,还有一种&不知道&,因此三进制逻辑更接近人类大脑的思维方式。显然,这种逻辑表达方式更加适合应用于人工智能。根据哥德尔不完备定理,在相容的公理系统中存在既不能证明也不能否证的命题,也就是说这种类型的命题的逻辑值的确就是不知道。三值逻辑符合更普遍的情况。
对称三进制的逻辑运算规则如下:
SQL使用 NULL 来表示在数据库中缺失数据,SQL语句中的逻辑表达式就是三值逻辑,通常TRUE值作为一种情况处理,FALSE和NULL作为另一种情况处理。
阅读(...) 评论()

我要回帖

更多关于 小数化为二进制 的文章

 

随机推荐