程序员面试金典--面试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和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
- 程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示
- 9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- 程序员面试金典: 9.5位操作5.2对一个浮点数,打印它的二进制表示
- 程序员面试金典--面试27之有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数
- 【Java】打印一个0到1之间的实数的二进制表示
- 程序员面试金典--面试24之二叉树和为某一值的路径
- 程序员面试金典 -- 面试29之交换一个数的二进制的奇数位和偶数位
- 程序员面试100题(算法)之整数的二进制表示中1的个数(两种方法)
- 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )
- 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )
- 程序员面试100题之八:不要被阶乘吓倒(二进制表示中最低位1的位置 )
- 程序员面试金典: 9.5位操作 5.3给定正整数,找出与其二进制表示中1的个数相同、且大小最接近的两个数
- 微软面试之22 一个整数的二进制中表示中的1的个数
- 微软面试100题之27题:整数的二进制表示中1 的个数
- 程序员面试金典--面试25之将m的二进制数位插入到n的二进制的第j到第i位
- 程序员面试金典--面试32之碰撞的蚂蚁
- 《程序员面试金典》--清除二维数组中元素为0所在的行和列
- 编写一个递归方法,它返回数N的二进制表示中1的个数
- 分布式配置管理平台Jconf设计与实现(一)
- leetcode解题系列:Two Sum
- python利用twilio模块发短信
- MySQL各存储引擎
- Windows电脑快捷键
- 程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示
- opencv(14)---图像阈值化
- HDU 1978 How many ways(记忆化搜索)
- oracle表空文件丢失后不完全恢复练习
- linux 中特殊符号用法详解
- 字符串处理函数
- jar文件双击打开以及不装jre环境打开jar文件
- MySQL事务
- Codeforces 311B Cats Transport