程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示

来源:互联网 发布:python开发web应用 编辑:程序博客网 时间:2024/05/29 07:08
题目描述
有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。
给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。
测试样例:
0.625

返回:0.101


思路:0.5 == 1.0 / (2)   0.25 == 1.0 / (2 * 2)    0.125 == 1.0 / (2 * 2 * 2)  我们只要遍历32位就可以了,直到num为0

#include<iostream>using namespace std;#include<string>#include<math.h>string PrintBin(double num){string ret = "0." ;for(int i = 1; i < 32; ++i){double temp = ( 1.0 / pow(2,i) );if(num >= temp){num -= temp;ret += '1';}else ret += '0';if(num >= -0.000000001 && num <= 0.0000001) //浮点数与0比较的写法return ret;}ret = "Error";return ret;}int main(){string ret = PrintBin( 0.625 );cout << ret << endl;cout << "hello..."<<endl;return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 头发油洗头掉发怎么办 头发油就掉头发怎么办 2岁儿童头发稀少怎么办 1岁宝宝头发稀少怎么办 头发又细又油怎么办 斑秃长了又掉怎么办 2岁宝贝头发稀少怎么办 25岁小伙掉头发怎么办 头发又细又软怎么办 甲减引起掉头发怎么办 掉头发严重怎么办40岁 4岁宝宝头发稀少怎么办 25岁头发顶脱发怎么办 头发细又少和软怎么办 头顶上头发少怎么办呢 3岁宝贝头发稀少怎么办 2岁幼儿头发稀少怎么办 小孩头发太少了怎么办 头发少盘丸子头怎么办 油头发掉的厉害怎么办 头顶头发长得慢怎么办 每次洗头发都掉很多头发怎么办 拔了头发不长怎么办 6岁儿童头发稀少怎么办 2岁宝宝胆子小怎么办 坐到小孩的头怎么办 托班幼儿不刷牙怎么办 两岁的宝宝蛀牙怎么办 小孩在学校被打怎么办 油画棒画在墙上怎么办 宝宝把蜡笔吃了怎么办 吃鸡更新了怎么办开始 数字画涂料干了怎么办 广告画颜料干了怎么办 宝宝断奶后瘦了怎么办 腿一个粗一个细怎么办 两条小腿不一样粗怎么办 两岁宝宝坐不了怎么办 q糖孩子吃多了怎么办 q糖孩子吃的太多怎么办 ps图层不能覆盖怎么办