文档章节

给定一个介于0和1之间的实数,类型为double,打印它的二进制表示

一贱书生
 一贱书生
发布于 2016/11/18 15:10
字数 211
阅读 15
收藏 0

/**

 * 功能:给定一个介于0和1之间的实数,类型为double,打印它的二进制表示。如果该数字无法精准地用32位以内的二进制表示,则打印“ERROR”。

 */

 

两种方法:

 

方法一:

[java] view plain copy

 

  1. //将数字乘以2以后,与1比较。  
  2.     public static String printBinary(double num){  
  3.         if(num>=1||num<=0)  
  4.             return "ERROR";  
  5.         StringBuilder binary=new StringBuilder();  
  6.         binary.append(".");  
  7.         while(num>0){  
  8.             if(binary.length()>=32)  
  9.                 return "ERROR";  
  10.             double r=num*2;  
  11.             if(r>=1){  
  12.                 binary.append("1");  
  13.                 num=r-1;  
  14.             }else{  
  15.                 binary.append("0");  
  16.                 num=r;  
  17.             }  
  18.         }  
  19.         return binary.toString();  
  20.     }  


方法二:更容易理解 [java] view plain copy

 

  1. //将数字与0.5比较  
  2.     public static String printBinary2(double num){  
  3.         if(num>=1||num<=0)  
  4.             return "ERROR";  
  5.         StringBuilder binary=new StringBuilder();  
  6.         double frac=0.5;  
  7.         binary.append(".");  
  8.         while(num>0){  
  9.             if(binary.length()>32){  
  10.                 return "ERROR";  
  11.             }  
  12.               
  13.             if(num>=frac){  
  14.                 binary.append("1");  
  15.                 num-=frac;  
  16.             }else{  
  17.                 binary.append("0");  
  18.             }  
  19.             frac/=2;  
  20.         }  
  21.         return binary.toString();  
  22.     } 

© 著作权归作者所有

共有 人打赏支持
一贱书生
粉丝 19
博文 724
码字总数 600123
作品 0
私信 提问
C Primer Plus 第3章 数据和C

3.1示例程序 程序清单3.1 rhodium.c程序 ------ 3.2 变量与常量数据 有些数据可以在程序使用之前预先设定并在整个运行过程中没有变化,这称为常量; 另外的数据在程序运行过程中可能变化或被...

idreamo
2016/05/10
12
0
三日php之路 -- 第一天(php语言参考)

一、基本语法 (1)PHP标记 <?php echo "Hello World!"; // 当文件为纯PHP时,最好在末尾删除PHP结束标记//?> (2)从HTML中分离 // 在一对开始和结束之外的内容,都会被PHP解释器忽略。也就...

明天以后
2014/09/28
0
0
SQL 用于各种数据库的数据类型

oracle常用数据类型说明 类型 含义 存储描述 备注 CHAR 固定长度字符串 最大长度2000bytes   VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的...

颖辉小居
2016/10/31
14
0
浮点数加法引发的问题:浮点数的二进制表示

1、问题: 之前有同学问过这样一个问题: echo|awk '{print 3.99 -1.19 -2.80}'4.44089e-16 类似的问题还有在 java 或者 javascript 中: 23.53 + 5.88 + 17.64 = 47.05 23.53 + 17.64 + 5.8...

大数据之路
2013/08/26
0
0
java二进制相关基础

转载请注明原创出处,谢谢! 说在前面 之前在JVM菜鸟进阶高手之路十(基础知识开场白)的时候简单提到了二进制相关问题,最近在看RocketMQ的源码的时候,发现涉及二进制的内容蛮多,jdk源码里...

匠心零度
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
6
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
5
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部