请选择 进入手机版 | 继续访问电脑版

高电压爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2545|回复: 5

【心得】一个快捷笔算换算常用进制的心得

[复制链接]
发表于 2016-10-17 19:14:52 | 显示全部楼层 |阅读模式
本帖最后由 佚之狗 于 2016-11-2 11:21 编辑


(达到一个目的的方法和途径有很多,这里只是分享一个我自己的经验供大家参考,仅代表我的观点。若有疏漏或错误,敬请您批评指正。
以下内容为本狗原创,保留权利,未经同意谢绝转载,分享请注明出处。感谢您的理解和支持!)


(这行是帖子封面,不要理我

做开发经常会用到进制换算,尤其是编程的时候。对于常见的2、8、10、16进制整数的笔算换算(有计算器肯定用计算器算最省事,但有很多时候由于各种各样的原因还是需要笔算),传统的方式是用类似短除法的方法还有按权展开,比较麻烦,相信大家也都有过了解,这里就不赘述了。(没了解过的朋友可以看看百度经验)我参考了一些资料,自己总结了一个以二进制数为桥梁实现快速简便地笔算换算常见进制的方法。(我都能想到,在我之前应该也有不少朋友想到了。不过,可能还是有一些朋友正好没想到的,还是来看看吧。)


先直接开贴看视频吧~(这是我传到优酷上的视频,也欢迎您到原帖地址查看)


(视频创建日期:2016年10月12日)

这个算法的核心是通过二进制这个桥梁实现任意进制(2的正整数次幂的进制,也包括10进制)之间的快捷笔算换算。所以,我们先来看一下这种方法是如何将任意二进制数(整数)换算成其他进制的。

按权展开很费劲,我们直接从右到左标记上2的(n-1)次方。是1的把标记抄下来,0的不用管,之间用+连接。加起来之后便得到了十进制数字。(其实这里原理和按权展开一样,但是下面的其他进制就不一样了~这也是这种方法最方便的一点。)
接下来我们从二进制到十六进制。

和从二进制到十进制有些相似,不同的是,从右到左每4位二进制位一隔断,下面的标记每组一循环。这样,把每组的数值像之前加十进制那样加起来,duǎng~地一下就把这个比较大的二进制数换成了十六进制数,是不是方便得多?八进制也同理,不过是每3位二进制位一隔断。(为什么16进制数是把二进制位四四一组、8进制数是把二进制位三三一组?因为2的4次方是16、2的3次方是8,也可以理解成下面的标记加起来连上0有16个、8个数字。)


接下来我们来两个实例总结一下:

①现有一个任意10进制数如1607(我QQ号后四位),需要换算成8进制数。

按此心得的思路,把二进制作为桥梁再把得到的二进制数换算成想要的进制,所以要先换算成二进制数。首先估算一下,十进制1607在1024和2048之间,也就是2的10次方到11次方,由此确定需要11个二进制位来表示。从左到右依次占位(记上1)则十进制1607可表示为1024+512+64+4+2+1,剩下的位数全部是0,于是就得到了二进制数11001000111。接下来再把这个二进制数换算成八进制数,我们从10进制换算到8进制的目标就完成了。

把二进制位从右到左每三位一组,每组把1对应的标记加起来,就得到了需要的8进制数。

实例①完成。


②现有一任意16进制数如12AB,需要换算成10进制。

众所周知,两个16进制位是一个字节,也就是8个二进制数,所以把16进制数每2位一组,每组又可以拆成高四位一组和低四位一组,也就是每个十六进制位换成4个二进制位。得到二进制数之后再用开篇讲得占位加法加出10进制数就完成了从16进制数换算成10进制数的目标。

实例②完成。


再次感谢您的关注与支持!


发表于 2016-10-22 17:42:07 | 显示全部楼层
楼主的图裂了。。。
 楼主| 发表于 2016-11-1 21:07:49 | 显示全部楼层
天狼晓月 发表于 2016-10-22 17:42
楼主的图裂了。。。

唔…还真是…但是我那些图懒得再整理上传了,太费劲……直接看视频吧~这些图就是视频截图
发表于 2016-11-2 00:42:28 | 显示全部楼层
佚之狗 发表于 2016-11-1 21:07
唔…还真是…但是我那些图懒得再整理上传了,太费劲……直接看视频吧~这些图就是视频截图

楼主的视频也裂了。。。
 楼主| 发表于 2016-11-2 11:19:15 | 显示全部楼层
天狼晓月 发表于 2016-11-2 00:42
楼主的视频也裂了。。。

唔…还真是……那我重新添加一下视频吧……
发表于 2016-11-7 23:40:33 | 显示全部楼层
就不能捎带把图片也救活么
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|平龙认高电压分站 - 高电压爱好者 ( 豫ICP备14029057号-3 )
豫公网安备 41010502002157号

GMT+8, 2020-5-25 12:47 , Processed in 0.050617 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表