数字进制间的转换方法

更好的良藥 1个月前 已收到1个回答 举报

息了三秋 2星

共回答了202个问题采纳率:92.8% 评论

我教人的办法是统一用2进制中转。2进制转16进制,从末尾隔四位打逗号,最前面不足四位补0,然后把0000-1111转化成对应的0-F。

转8进制就是隔三位打逗号,然后把000-111转化成0-7。

16进制转2进制就是逆操作,逐位把0-F转换成0000-1111。8进制逐位转为000-111。

2进制转10进制,从末尾开始逐个在2进制每位数字下写1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192……(最好背下来这几个,后面不够用再临时算)。

这样就变成了上面一行2进制,下面一行2的幂。

然后看上面是1的,把下面加起来就行了。

10进制转2进制,也要用到上面那两行,先看这个10进制的数在上面第二行的哪两个数之间,比如5398,在4096和8192之间,那就在4096的那位写1,然后用5398减4096得到1302,用1302再和2048比,比之小,在2048这位写0,然后继续和1024比…总之就是从高位往低位比大小,大的写1同时做减法,小的直接写0。

其实理论上也是逆操作,把它拆成2的幂的和的表达式,有的写1没的写0。

其他转化的话,先中转成2进制然后转成你想要的,这样看起来貌似多了一步其实速度也不慢,因为2进制和16/8进制之间转化很快。

而且因为是两步,如果第一步没问题第二步错了,从中间来就好。

整个过程只有加减法,比什么除几取余简单多了。

9小时前

32
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com