原创 为什么偏偏是十六进制?——on the road to being a professional

2009-8-7 13:47 3974 7 11 分类: FPGA/CPLD
我的数学一直不好!作为一名FPGA逻辑开发工程师,我的二进制数学更是学得不好。
我在小学五年级时就能够用二进制加法法则推导二进制乘法结果了,但是在那以后一直就没有什么长进。
我在研究生毕业时才强记住了2的各次幂的结果:2的3次方是8,2的4次方是16,2的6次方是64,2的10次方是1K,其他的幂次都可以由这些结果推导得到。
直到最近,我还仍然被一个字节可以表示几位十六进制数这样的问题所困扰:一个字节是8位二进制,一个十六进制数可以表示为4位二进制数,所以一个字节表示为2位十六进制数。
ABCDEF这几个十六进制数字之中,我认得的只有A和F,BCDE对应的十进制值我都记不住,都需要从A和F推算出来。C这个数字特殊一些——零四八C么——我还能从零、四、八的关系上推算出来。
其实,A到Z这26个字母的顺序关系我也没记清楚,翻字典的时候经常不能三两下就翻到要找的那个首字母。在我的记忆中,26个字母之间的关系就像一个个孤立的小岛:有的岛大一些,几个字母一群;有的岛小得可怜,只容得下一个字母。
从1到100的数字在我的脑海中是以10为递增单位的一个个梯阶,这个阶梯向上一直延伸到一百以上大约两个梯阶,向下只能延伸不到一个梯阶。其余的数字还没能被容纳进这个形象之中。这个阶梯的形象在我7岁以前就形成了,一直用到现在:我对自己年龄的认识就是第三个梯阶的上边沿。
说点过分的。就在几年前,我对左和右的概念还是:拿笔写字的是右手,另外一只是左手。这大概是我在上幼儿园前后形成的概念,一直沿用了20多年。

我对数字和抽象的概念就是这么不敏感,所以我的历史成绩很差——上下五千年,用我那仅够丈量自己年龄的“梯阶形象记数法”实在是标注不过来;好在我的空间想象能力还不错,大学时的工程制图课几乎拿了满分,也被高中数学老师称赞为:“这位同学在立体几何上是有些天赋的。”

说跑题了,大家想笑就笑,想笑话我就笑话我吧,别憋坏了!

言归正传,记得在《地球杀场(Battlefield Earth)》中,塞库洛科学家们掌握着宇宙中最先进的星系间远距物质传输技术(teleportation),也因此称霸整个宇宙,掌控着各个星系,奴役着公元3000年的地球人。在乔尼和他的朋友们利用塞库洛人特尔的贪婪颠覆了整个塞库洛帝国后,才发现他们的数学是以十一进制为基础的。以十一进制为基础并不是基于什么物理上的特性(我们有10个手指头,电路开关有0/1两种状态),而是为了迷惑其他试图破解塞库洛科技的种族——“塞库洛帝国故意用十一进制搅得人人糊涂”。十一进制再加上“代码数学”,这一伎俩有效地保证了塞库洛人的科技垄断地位达三万二千年之久。

在我看来,十六进制就是这么“拧吧”:做手工计算要转化为十进制,理解物理意义要转化为二进制。十六进制是二进制的一种科学计数法,没有它,二进制就更加难以理解和记忆。头疼归头疼,要想把逻辑问题解决好,还真要下功夫把十六进制的加减运算和其与二进制数字的逐位对应关系弄踏实,可不能再用我以前那些偷懒的招数蒙混过关了。

On Being A Professional A professional is someone who can do his best work when he doesn’t feel like it.

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户249726 2010-6-7 15:15

你计数和几个和我太像了 我也是几何很好 而数学能力差

用户234619 2010-4-8 12:06

零四八C,这下记住C了。 3Q!

用户505772 2009-12-4 22:06

硬件开发人员的头脑就应该是基于二进制的。用门级的方法设计常见的几种加法器,乘法器,ALU之类的单元模块,经过这个过程后,对二进制的理解就是刻骨铭心的了。十六进制跟二进制其实是一回事。

ilove314_323192455 2009-7-26 22:21

地球人都很聪明,用0和1创造了一切
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
EE直播间
更多
我要评论
4
7
关闭 站长推荐上一条 /3 下一条