如何把带小数的十进制转换成二进制数?

zengjd 2007-09-12 12:45:53
如何把带小数的十进制转换成二进制数?
...全文
3042 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-10-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

让大哥教你们一招好办法,怎么简单的转换,以及怎么判别能否用给定的位数精确表示一个10进制小数。
以0.635为例,这个数能用二进制小数表示么,能的话需要多少位呢。
因为0.635*256=162.56,注意小数部分不为0。所以8位二进制小数无法精确表示。再看0.635*65536=41615.36。小数部分仍不为0,所以16也不能精确表示。
到这里相信大家也看出点什么了,看一……
[/Quote]
这个不错,第一次见这种方法。
wang182004 2010-07-03
  • 打赏
  • 举报
回复
这贴都沉了,请告知公式
qwqwqw408 2007-09-29
  • 打赏
  • 举报
回复
让大哥教你们一招好办法,怎么简单的转换,以及怎么判别能否用给定的位数精确表示一个10进制小数。
以0.635为例,这个数能用二进制小数表示么,能的话需要多少位呢。
因为0.635*256=162.56,注意小数部分不为0。所以8位二进制小数无法精确表示。再看0.635*65536=41615.36。小数部分仍不为0,所以16也不能精确表示。
到这里相信大家也看出点什么了,看一个十进制小数能否用给定的n位二进制小数表示,就用那个十进制乘以2的n次方,看小数部分是否为零,是的话就能用n位精确表示,否的话就不能。
其实楼上的52.63可以转换的,8位表示小数部分,把0.63*256也就是2的8次方得到161.23,23不要,把161化成二进制表示为10100001,再连上52的,就成了1010010.10100001,这里用8位表示小数是表示不尽的,因为0.63*256=161.23,小数部分不为零。
这些公式很容易推出来的,如果大家想不出的话,顶一下,我告诉你们。
马文科技 2007-09-12
  • 打赏
  • 举报
回复
小数部分实际上,是用的乘
例如:

52.63==

52=1010010
0.63=


0.63
×
2
————
0.26 。。1
×
2
————
0.52 0
×
2
————
0.04 1
×
2
————
0.08 0

这样一来就Ok了,如果还想继续算也行,不过我们一般都保留四位,
整数部分要和小数部分分开算!

一步步的算,乘出来的整数,当做二进制,这样,就可以,实际有很多方法了,不是就这一种,!
不过这一种是最简单的
大熊猫侯佩 2007-09-12
  • 打赏
  • 举报
回复
你是指输出么?否则浮点数在内部也是2进制形式存放的。
大熊猫侯佩 2007-09-12
  • 打赏
  • 举报
回复
你是指输入么?否则浮点数在内部也是2进制形式存放的。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧