[请问] 可以在做进位转换的时候不经过十进制吗

楼主: Cavaliers (cavaliers)   2018-02-03 16:55:19
通常在教 m 进位转换成 n 进位的时候
都会说先把 m 进位转成十进制 然后再从十进制转成 n 进位
有没有办法跳过十进制 直接做转换呢?
比如: 三进制 1221102 直接转成五进制?
感谢
作者: chinnez (棱靘)   2018-02-03 17:11:00
绝大多数人脑没办法直接作无倍数关系的进位制吧…绝大多数人脑没办法直接作无倍数关系的进位制转换吧…上面那句漏字
作者: ChungLi5566 (中坜56哥)   2018-02-03 17:20:00
可以啊 2、8、16进位可以直接转
作者: higger (朝乡而行2016)   2018-02-03 17:25:00
应该可以推导出公式吧
作者: a88241050 (再回頭已是百殘身)   2018-02-03 17:59:00
除非m和n都是某数的次方,比如说2,8 ; 3,9 ,否则基本上应该是不行
作者: eagle0149 (疾如风 徐如林)   2018-02-03 18:01:00
写程式阿
作者: ChungLi5566 (中坜56哥)   2018-02-03 18:18:00
也都可以经过2进位来转
作者: waynex (waynex)   2018-02-03 18:22:00
把5写成三进位是12 剩下就跟十进制一样算法
作者: wxtab019 (天霜凝月)   2018-02-03 18:31:00
没有什么不行的阿 你先理解进位制是怎么表示的就行了用短一点的举例推文比较好写 像12021(3)->???(5)12021(3)=1*3^4+2*3^3+0*3^2+2*3^1+1*3^0转成(5)就a*5^3+b*5^2+c*5^1+d*5^0而已
作者: yzfr6 (扮关二哥!)   2018-02-03 18:50:00
能找到规律就行
作者: waynex (waynex)   2018-02-03 19:04:00
用人脑也可以直接算 不过乘法除法都要用三进位就是比如说 2*2=11 或是 12*2=101 或是 22*2=1211221102101111...02002...10102...12...1所以就得到(2)(1)(1)(10)(0) = 21130
作者: jatj   2018-02-04 03:27:00
程式最基本单位是二进制 所以最有效率一定是二进制
作者: wray (Rayf)   2018-02-05 23:26:00
应该可以,只是必须先掌握M或N进位的运算方式到一定程度。一般人的脑袋无法负荷这种运作,又只是任务式的转换,然后要回到十进制的世界。所以这不会在一般讨论之列。

Links booklink

Contact Us: admin [ a t ] ucptt.com