关于八进制、十六进制(小数部分)转换二进制如何换算?

求提供详细换算方法,不要直接给出像0—000,1—001这种。譬如十六进制0.2转换二进制,为什么是0.001?如果是像十进制转换二进制那种算法的话,这里十六进制的小数部... 求提供详细换算方法,不要直接给出像0—000,1—001这种。

譬如十六进制0.2转换二进制,为什么是0.001?如果是像十进制转换二进制那种算法的话,这里十六进制的小数部分转换排序又是怎么一回事?正序排列?倒序排列?
展开
 我来答
全是菜鸡eO5Lf
高粉答主

2019-11-21 · 关注我不会让你失望
知道小有建树答主
回答量:624
采纳率:100%
帮助的人:14.2万
展开全部

常规的算法就是统统转10进制再转成对应的,只不过整数部分是一直除,小数部分是一直乘。但是对于2、8、16进制之间互相转化不需要这么麻烦,不管是小数还是整数部分,说一个快速转化的方法。

8、16要转成二进制非常容易,只要把每一位都转成二进制整个串起来就行,只不过8进制每一位转3位2进制,16进制每次转4位。

扩展资料

在进行进制转换时有一基本原则:转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。

十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分……

R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……

可以看出相邻的数位间相差进制的一次方。

对10进制,从低位到高位,依次要乘以10^0,10^1,10^2,10^3……,也就是1、10、100、1000

对2进制,从低位到高位,依次要乘以2^0,2^1,2^2,2^3……,也就是1、2、4、8、……

参考资料来源:百度百科-进制转换

discovery522
推荐于2017-09-06 · TA获得超过4714个赞
知道大有可为答主
回答量:2308
采纳率:71%
帮助的人:1506万
展开全部
常规的算法就是统统转10进制再转成对应的,只不过整数部分是一直除,小数部分是一直乘。

但是对于2 8 16进制之间互相转化不需要这么麻烦,不管是小数还是整数部分,说一个快速转化的方法。
8,16要转成二进制非常容易,只要把每一位都转成二进制整个串起来就行,只不过8进制每一位转3位2进制,16进制每次转4位。

举个例子:
12.34,如果是16进制,转2进制如下 每位转4位2进制 0001 0010.0011 0100就是10010.001101。
如果12.34是8进制,类似只是每次是3位的001 010. 011 100就是1010.0111。
你说的十六进制0.2就是0000.0010=0.001。
反过来划分相同位数拼起来就行,这样8 16其实转化也很方便。
比如刚才10010.001101,这次转8进制而不是16进制,重新分段3个一段010 010.001 101=22.15。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhansen
推荐于2017-09-03 · TA获得超过4088个赞
知道大有可为答主
回答量:1383
采纳率:50%
帮助的人:1228万
展开全部
常规的算法就是统统转10进制再转成对应的,只不过整数部分是一直除,小数部分是一直乘。

但是对于2 8 16进制之间互相转化不需要这么麻烦,不管是小数还是整数部分,告诉你一个快速转化的方法。
8,16要转成二进制非常容易,只要把每一位都转成二进制整个串起来就行,只不过8进制每一位转3位2进制,16进制每次转4位
举个例子
12.34,如果是16进制,转2进制如下 每位转4位2进制 0001 0010.0011 0100就是10010.001101
如果12.34是8进制,类似只是每次是3位的001 010. 011 100就是1010.0111
你说的十六进制0.2就是0000.0010=0.001
反过来划分相同位数拼起来就行,这样8 16其实转化也很方便
比如刚才10010.001101,这次转8进制而不是16进制,重新分段3个一段010 010.001 101=22.15
追问
我的意思是十六进制0.2转二进制,是不是也是用2除以2,取余数排列?我想知道是正序排列还是倒序排列?而不是你直接给出的答案那种。
追答
我说了如果你要用常规算法,先都转成10进制再算
转10进制都是每位*那个进制的那一位次方,小数部分是负数
1101.0111=>1*2^3+1*2^2+0*2^1+1*2^0+0*2^(-1)+1*2^(-2)+1*2^(-3)+1*2^(-4)

这样

10进制转其他进制小数部分是乘的
如0.4375
0.4375*2=0.875 整数部分为0 即当前二进制数值为:0.0
0.875*2=1.75 整数部分为1 即当前二进制数值为:0.01 去掉1后继续运算。
0.75*2=1.5 整数部分为1 即当前二进制数值为:0.011 去掉1后继续运算。
0.5*2=1.0 整数部分为1 即当前二进制数值为:0.0111 去掉1后为0,运算结束。
0.4375的二进制数为:0.0111

你说的十六进制0.2转二进制就是这样
先转十进制2*16^(-1)=2/16=0.125
再转二进制,
0.125*2=0.25,0
0.25*2=0.5,0
0.5*2=1,1
小数部分就是001,因为没整数部分所以就是0.001

但是之前说了2 8 16之间真没必要这样算...
因为0-16这几个数字的二进制非常容易推出来...常用的话比如我基本都记得住...直接每项拆开快多了不需要区分整数小数部分为何要常规算法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式