十进制如何转换成十六进制:整除取余倒序排列完成整数转换

十进制如何转换成十六进制:整除取余倒序排列完成整数转换

上周计算机随堂小测,毫无预兆碰到计算题,当场卡壳十进制如何转换成十六进制,之前上课只模糊听老师提过步骤,压根没亲手练过,握着笔盯着题目愣了好久,脑子空空的,只能凭着零碎的记忆瞎试。

一开始完全没章法,拿着数字就开始除,算出来余数直接顺着往下写。

当时题目是把十进制数247转换成十六进制,最开始的操作特别离谱,一遍遍用247除以16,算出第一次余数15,接着用商继续除16,算出余数7,最后商变成0的时候,直接把15、7顺着写成157,满心以为算对了,结果同桌扫了一眼就说完全错的。那时候还不服气,反复核对除法运算,加减乘除来回验算,确认每一次相除的商和余数都没有算错,就是结果不对,折腾的满头雾水,压根找不到问题出在哪,甚至怀疑题目是不是出错了,浪费了快十分钟的时间。

折腾好久才搞明白,最核心的坑就是余数的排列顺序。

整数部分转换的核心操作就是不停用十进制数除以16,记录每一次计算得到的余数,一直除到计算后的商变成0为止,所有记录下来的余数要倒序排列,不是顺着写,这就是我全程出错的根源。而且还有个很容易忽略的点,余数的范围如果是10到15,不能直接写阿拉伯数字,得对应替换成十六进制的大写字母,10是A、11是B、12是C、13是D、14是E、15是F,我最开始就是直接写15、7这类数字,也算的错答案。

这两个不起眼的细节,直接让我现场翻车两次。

重新一步步实操的时候,才彻底理顺流程,247除以16,商是15,余数是15也就是F;再用15除以16,商是0,余数是15也就是F,把两次的余数从后往前组合,最终结果就是FF,和标准答案完全对上了。其实整个操作一点都不复杂,就是新手特别容易惯性顺着写余数,还会忘记字母替换的规则,没有实操过的话,大概率都会踩一样的坑。

后面闲着又试了几个数字,发现小数部分的转换和整数完全不一样,不能用除16取余的方法,是用小数部分持续乘16,取每次计算的整数部分,顺着排列就行,不用倒序。我最开始还傻乎乎的套用整数的方法,算出来的小数部分乱的一塌糊涂,试了两次才摸清这个区别。

下课之后,把那张写满错误演算步骤的草稿纸随手揉成团,塞进了课桌的缝隙里。

了解更多百科知识请访问 百科