比特位操作——二进制表示
2017-06-27 19:23
232 查看
转自:http://blog.csdn.net/shinanhualiu/article/details/50405295
给定一个数将其转换为二进制(均用字符串表示),如果这个数的小数部分不能在 32 个字符之内来精确地表示,则返回 “ERROR”。
样例
n = “3.72”, 返回 “ERROR”.
n = “3.5”, 返回 “11.1”.
给定一个数将其转换为二进制(均用字符串表示),如果这个数的小数部分不能在 32 个字符之内来精确地表示,则返回 “ERROR”。
样例
n = “3.72”, 返回 “ERROR”.
n = “3.5”, 返回 “11.1”.
public class BinaryRepresentation { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(binaryRepresentation("6.125")); } //将整数装换成二进制 public static String getIntBin(int n){ StringBuilder res=new StringBuilder(); if(n==0) return "0"; while(n!=0){ res.append(n%2); n/=2; } return res.reverse().toString(); //要反转 } //将小数部分转换成二进制 public static String getDoubleBin(double n){ StringBuilder res=new StringBuilder(); if(n==0.0) return "0"; while(n!=0.0){ //最好把这个判断放在while里面,如果放到while外面的话,可能会因为while死循环而无法执行 if(res.length()>32){ return "ERROR"; } double ans=n*2; res.append((int)ans); n=ans-(int)ans; } return res.toString(); } //将输入数据进行拆分 public static String binaryRepresentation(String n){ if(n.length()==0||n==null) return "0"; int index=n.indexOf("."); int inter=0; double d=0; if(index!=-1){ //等于-1表示不存在这样的index inter=Integer.parseInt(n.substring(0,index)); d=Double.parseDouble(n.substring(index)); } else{ inter=Integer.parseInt(n); } StringBuilder res=new StringBuilder(); res.append(getIntBin(inter)); if(d==0.0){ return res.toString(); } res.append("."); String tmp=getDoubleBin(d); if(tmp.equals("ERROR")) return tmp; return res.append(tmp).toString(); } }
相关文章推荐
- 9.5位操作(三)——给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数
- 程序员面试金典: 9.5位操作 5.3给定正整数,找出与其二进制表示中1的个数相同、且大小最接近的两个数
- 位操作:一个整数的二进制表示中 有多少个1?
- 比特位操作——更新二进制
- 程序员面试金典: 9.5位操作5.2对一个浮点数,打印它的二进制表示
- 9.5位操作(二)——给定一个介于0和1之间的实数,类型为double,打印它的二进制表示
- 比特位操作——二进制中有多少个1
- 求某个数的二进制表示中的“1”的个数——递归算法
- ~~~二进制文件操作~~~
- C#的二进制文件操作及汉字编码转换
- *使用Java操作二进制文件 (转)
- 数据结构类型定义及基本操作汇总(三)--图的表示
- OleContainer操作Excel以二进制方式读写数据库
- 求二进制的加法,输入两个四位二进制数,求其和(二进制表示)。
- 操作二进制数据
- Visitor 表示一个作用于某个对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
- 二进制位,字节,字长计算机内表示,及二进制、八进制、十六进制
- 用sql语句根据操作顺序码生成表示号码范围的字段
- 如何在PB中进行位操作以及二进制与十进制转换
- delphi中实现用字符串表示并操作控件的方法。