9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
来源:互联网 发布:ubuntu 反应慢 编辑:程序博客网 时间:2024/06/05 15:44
/**
* 功能:给定一个介于0和1之间的实数,类型为double,打印它的二进制表示。如果该数字无法精准地用32位以内的二进制表示,则打印“ERROR”。
*/
两种方法:
方法一:
//将数字乘以2以后,与1比较。public static String printBinary(double num){if(num>=1||num<=0)return "ERROR";StringBuilder binary=new StringBuilder();binary.append(".");while(num>0){if(binary.length()>=32)return "ERROR";double r=num*2;if(r>=1){binary.append("1");num=r-1;}else{binary.append("0");num=r;}}return binary.toString();}
方法二:更容易理解
//将数字与0.5比较public static String printBinary2(double num){if(num>=1||num<=0)return "ERROR";StringBuilder binary=new StringBuilder();double frac=0.5;binary.append(".");while(num>0){if(binary.length()>32){return "ERROR";}if(num>=frac){binary.append("1");num-=frac;}else{binary.append("0");}frac/=2;}return binary.toString();}
0 0
- 9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- 程序员面试金典--面试26之介于0和1之间的实数,类型为double,返回它的二进制表示
- 【Java】打印一个0到1之间的实数的二进制表示
- 022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)
- 9.5位操作(三)——给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数
- 程序员面试金典: 9.5位操作5.2对一个浮点数,打印它的二进制表示
- 给定一个整数,求它的二进制表示
- 给定一个数字的十进制形式,求出用二进制表示次数时,其中bit位为1的个数
- 打印一个0到1之间的数的二进制表示
- 给定一个正整数的二进制表示
- 求给定一个正整数的二进制表示
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- 程序员面试金典: 9.5位操作 5.3给定正整数,找出与其二进制表示中1的个数相同、且大小最接近的两个数
- 计算一个整数二进制表示时有多少位是为1的算法
- lintcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。
- 一个介于友情和感情之间的朋友
- updated--介于setup和head之间的一个混杂地段
- 位操作:一个整数的二进制表示中 有多少个1?
- 很详细的:java中文数字转换成阿拉伯数字
- 2015 Multi-University Training Contest 5(hdu5343 - 5352)网络流+yy+(哈夫曼树+dp)
- Protocol - 2
- Codeforces Round #Pi (Div. 2) C. Geometric Progression (map)
- UVALive - 3661 Animal Run (平面图+最小割+对偶图+最短路)
- 9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- C++标准模板库STL算法与自适应容器(栈和队列)
- Android学习第六弹之Touch事件的处理
- ios各种动画效果
- SVG -椭圆曲线简介
- poj 2245 Lotto
- popupwindow的源码分析
- 如何用Docker编排容器
- Android, xmpp, asmack以及openfire