10进制纯小数转2进制小数。
来源:互联网 发布:sass for mac 安装 编辑:程序博客网 时间:2024/05/16 10:50
今天,毛线同学写作业的时候,突然冒出个想法:写个十进制小数转二进制小数的程序如何? 我一想,中!。刚好写作业的时候,需要用到。
于是,立即回寝室。写起。完成的还是挺快的.
10进制纯小数转2进制小数的方法,很简单。就是对小数部分,乘二。之后,对整数位取整。整数位为0就是零,为1就是1,然后整数位归零。重复这个过程。
直到,得出的结果为0。
/* *名称:限制版进制转换 * *概述 :十进制小数转换二进制,不可直接用分数作为输入。 * * 作者:CSB * *日期:13/5/1 * */#include <iostream>using namespace std;//////////////////////////////////////////////////////////////////////////// 常量//////////////////////////////////////////////////////////////////////////const int precision = 100;//精确到几位,即算出来的小数的最大位数const double ratio = 0.000000001;//精度,当一个浮点数与ratio的差小于ratio时,则算作0//////////////////////////////////////////////////////////////////////////// 函数定义///////////////////////////////////////////////////////////////////////////*****************************************************************判断输入的小数,是否小于精度值*小于则判断为0,返回真**/bool is_zero( const double &in ){if( in - ratio < ratio ){return true;}else{return false;}}/*****************************************************************功能:10进制转换为2进制**概述:每步对十进制小数乘二取整,然后继续对剩下的小数部分,乘二取整*直到小数部分变为零**输入数的类型,要求为纯小数。**/void Dec_To_Bin(double &in){int time = 0,sign_bit = 0;//当输入的数为负数时,取这个数的绝对值,同时sign_bit置1(表示符号位)。if( in > 1){cout<<"整数部分不为0,暂时不支持这种转换"<<endl;return;}elseif( in < 0 ){in = abs(in);sign_bit = 1;}//输出符号位和小数点cout<<sign_bit<<'.';//输入数为0,则直接输出0if( is_zero(in) ){cout<<0<<endl;return;}//进行运算,乘二后的得数,若大于1,则证明整数部分为1,输出1.//同理小于1输出0,当得数等于1时,转换完成。while( time <= precision ){in *= 2;if( in > 1 ){in -= 1;cout<<1;}elseif( in == 1 ){cout<<1<<endl;break;}elseif( in < 1 && in > 0){cout<<0;}time++;}}/*****************************************************************功能:输入十进制小数,转换为二进制小数,支持多次输入**注意:当一个小数后面跟着字符的时候,会只计算那个小数。同时,后面的字符*会被清除**/void input_Dec_Output_Bin(){double in = 0.;char q = ' ';while( q != 'q' ){cout<<"请输入需要转换的小数: ";cin>>in;//清空输入缓冲区,防止错误输入cin.clear();cin.ignore(numeric_limits<streamsize>::max(),'\n');Dec_To_Bin(in);cout<<"退出请按q,继续请输入其他字符"<<endl;cin>>q;//清空输入缓冲区,防止错误输入cin.clear();cin.ignore(numeric_limits<streamsize>::max(),'\n');}}int main(void){system("color 0e");input();return 0;}
- 10进制纯小数转2进制小数。
- 10进制小数转化为任意进制小数
- n进制小数
- N进制小数
- N进制小数
- 小数进制转换
- N进制小数
- 小数
- 用reinterpret_cast将10进制小数转换成16进制单精度浮点小数
- 用10进制小数不能精确表示某些三进制小数
- 蓝桥杯 n进制小数
- JavaStep-小数进制转换
- 蓝桥杯 n进制小数
- 小数的进制转换
- 蓝桥杯-N进制小数
- 112.n进制小数
- 小数进制转化 @ Python
- 制保留2位小数
- Robot Navigation
- C#程序设计技巧小结
- lucene实现自定义的评分
- vim ctags使用方法
- 【leetcode】Flatten Binary Tree to Linked List
- 10进制纯小数转2进制小数。
- servlet和filter,interceptor等的区别,经典中的经典。
- 16、OpenGL ES中混合的使用 (2012-08-02 )
- 一个高效判断字符串是否全数字的函数
- 【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- unix环境高级编程 笔记1
- 17、OpenGL ES2.0 生成Mipmap纹理(2012-08-02)
- Android NDK
- 18、glClearDepthf与glDepthFunc(2012-08-07 )