T-cat 2004-10-5 13:18
[求助]还是一些关于进制的问题(希望高手发表一些意见~)
<P>上一次的帖里有问大家关于二进制的数字如果换为十进制,我自己研究了研究(也不算研究吧)有一个结论(还没有时间验证),看看大家意见:</P>
<P>在二进制中1、10、100、1000、10000分别为十进制中的1、2、4、8、16,也就是2`0*1、2`1*1、2`2*1、2`3*1、2`4*1.</P>
<P>结论1:在二进制中10`n为十进制中的2`n*1</P>
<P>同样,在三进制中1、10、100、1000、1000、2、20、200、2000、20000分别为十进制中的1、3、9、27、81、2、6、18、54、162也就是3`0*1、3`1*1、3`2*1、3`3*1、3`4*1、3`0*2、 3`1*2、3`2*2、3`3*2、3`4*2.</P>
<P>结论2:在三进制中10,n`为十进制中的3`n*a(a=1、2)</P>
<P>上述的两个点结论可不可以说明以下的结论?</P>
<P>a进制中 10`n*b (b为小于0的正整数) 10进制中该数为 a`n*b </P>
<P>还有一个问题是,在求非十进制数字(假设为二进制)转换为十进制数字时,应该怎么求?(我所知道的方法是,求二进制数字10111001,把这个数字拆为10000000+100000+10000+1000+1,然后一个一个转换为十进制数字128+32+16+8+1得到结果185, 可是有其他的方法吗?首先排除使用计算机,只使用笔纸)</P>
[em03]
[align=right][color=#000066][此贴子已经被作者于2004-10-5 13:23:48编辑过][/color][/align]
lossfire 2004-10-5 13:31
<P>以二进制为例的话~~~~~~~~你那个方法应该是纸算最简单了~~~~~~~~</P><P>而且大部分进制(或者说是全部进制)都是应用于计算机而不是给人力进行计算用的~~~~~~~~~所以不必想那么多~~~~~~~~你所说的三进制都很少被用到~~~~~~一般都是二进制,八进制,十六进制和三十二进制~~~~~~~~特别是八进制,十六进制和三十二进制都是根据二进制推广来的~~~~~~~~</P><P>你去看一下计算机的发展史~~~~~~~~你就会明白计算机当初为什么使用二进制而不是十进制~~~~~~~~~~~~二进制的发明基本上就是为计算机而准备的~~~~~~~~~</P>
去留无意 2004-10-5 14:04
从节省元件的角度,计算机应该采用三进制,但-----
[quote]<B>以下是引用<I>lossfire</I>在2004-10-5 13:31:09的发言:</B>
<P>你去看一下计算机的发展史~~~~~~~~你就会明白计算机当初为什么使用二进制而不是十进制~~~~~~~~~~~~二进制的发明基本上就是为计算机而准备的~~~~~~~~~</P>[/quote]
<P> 从节省元件的角度,计算机应该采用三进制,但计算机中存储的信息相应要用三个电平来表示,其稳定性不如两个电平,综合考虑,计算机采用二进制更符合实际。</P>
冇名 2004-10-9 09:15
[quote]
<P>还有一个问题是,在求非十进制数字(假设为二进制)转换为十进制数字时,应该怎么求?(我所知道的方法是,求二进制数字10111001,把这个数字拆为10000000+100000+10000+1000+1,然后一个一个转换为十进制数字128+32+16+8+1得到结果185, 可是有其他的方法吗?首先排除使用计算机,只使用笔纸)</P>
<P>[/quote]</P>
<P>基本上就是用这个方法算的,但如果这个二进制数字太长,可以先转化为16进制后再换成10进制,这样会比较容易算.</P>
<P>如10111001可以看成 1011 / 1001, 1011的16进制就是B(10进制的11),1001的16进制是9</P>
<P>所以10111001的16进制就是B9,转换成10进制就是11*16+9=185</P>
<P>此方法适用比较长的2进制数字,短的数字就不用多此一举了</P>
<P>[quote]a进制中 10`n*b (b为小于0的正整数)[/quote]</P>
<P>b应该为小于a的正整数,呵呵
</P>
去留无意 2004-10-9 12:11
能否用心算1111011111的十进制数?如果后面还有若干个1呢?
<P>能否用心算1111011111的十进制数?如果后面还有若干个1呢?</P>
<P>可以用式子表达一下。</P>
冇名 2004-10-9 12:41
1111011111=1111111111-100000=(10000000000-1)-100000
去留无意 2004-10-9 13:03
在有很多位的二进制中若0远比1少,按此方法是非常简便的。
[quote]<B>以下是引用<I>冇名</I>在2004-10-9 12:41:58的发言:</B>
1111011111=1111111111-100000=(10000000000-1)-100000[/quote]
<P>在有很多位的二进制中若0远比1少,按此方法是非常简便的。给它取个名字------互补法。</P>