| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:高手的指点 这是作业 !!!
只看楼主 加入收藏
wanxingdai
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2010-9-21
结帖率:55.56%
收藏
已结贴  问题点数:20 回复次数:6 
高手的指点 这是作业 !!!
输一个十进制转换成二进制 小数部分也要实现  重点实现小数部分的转换 整数我做了
搜索更多相关主题的帖子: 二进制 十进制 
2010-12-26 19:00
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:4 
我一时眼花  看成  这不是作业

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-12-26 19:02
zdyzhang
Rank: 9Rank: 9Rank: 9
来 自:栖息地
等 级:蜘蛛侠
威 望:4
帖 子:2335
专家分:1227
注 册:2008-9-20
收藏
得分:4 
  十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
十进制转二进制
  用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果   
例如: 19.95 转2进制分为两个步骤。
   1、小数点前   19/2=9余1   9/2=4 余1   4/2=2 余0   2/2=1 余0   1/2=0 余1   由下往上取余数 10011   
2、小数点后   0.95*2      = 1.9 取整1   (1.9-1)*2  = 1.8 取整1   (1.8-1)*2  = 1.6 取整1   
(1.6-1)*2  = 1.2 取整1   (1.2-1)*2  = 0.4 取整0   (0.4-0)*2  = 0.8 取整0   (0.8-0)*2  = 1.6 取整1   (1.6-1)*2  = 1.2 取整1  
 假设小数精度为8位,从上往下去则小数点后为 0.11110011   故19.95 转化为二进制为 10011.11110011
1. 十进制整数转换为二进制整数
  十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为一时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
  十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者小数部分为1,此时1位二进制的最后一位。或者达到所要求的精度为止。   然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

悲剧源于生活。
2010-12-26 19:06
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:4 



0.0     顶!


楼上的,我也学习了
2010-12-26 19:12
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:4 
连上百度都这么懒,以下内容来自百度非本人所有╯_╰我写了个10进制小数,转二进制的程序(包含整数部分和小数部分):#include <stdio.h> #define NUM 2 #define ZERO 0.000001 void integer(int n) { if(n>0) { integer(n/NUM); printf("%d",n%NUM); } } void decimal(double m) { if(m>ZERO) { m=m*NUM; printf("%d",(long)m); decimal(m-(long)m); } } void main() { double f; long n; printf("请输入一个10进制的小数:"); scanf("%lf",&f); if(f<0) { printf("-"); f=-f; } n=(long)f; printf("转换成%d进制的小数为:",NUM); integer(n); printf("."); decimal(f-n); printf("\n"); }

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-12-26 19:14
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
手机没法换行,凑活看吧

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-12-26 19:16
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:4 
楼主 果然光明磊落

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-12-26 21:48
快速回复:高手的指点 这是作业 !!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067324 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved