文档章节

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

一贱书生
 一贱书生
发布于 2016/11/18 15:10
字数 211
阅读 14
收藏 0
点赞 0
评论 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
博文 722
码字总数 600072
作品 0
C Primer Plus 第3章 数据和C

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

idreamo ⋅ 2016/05/10 ⋅ 0

JAVA基本数据类型转换

● boolean类型不可以转换成其他的数据类型; ● 整形、字符型、浮点型的数据在混合运算中相互转换,转换时遵循如下规则: ■ 容量小的类型自动转换成容量大的数据类型;数据类型按容量大小排...

lovedreamland ⋅ 2011/02/10 ⋅ 0

三日php之路 -- 第一天(php语言参考)

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

明天以后 ⋅ 2014/09/28 ⋅ 0

SQL 用于各种数据库的数据类型

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

颖辉小居 ⋅ 2016/10/31 ⋅ 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...

xrzs ⋅ 2013/08/26 ⋅ 0

java二进制相关基础

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

匠心零度 ⋅ 2017/12/05 ⋅ 0

MySQL数据类型选择优化

选择正确的数据类型对于获得高性能至关重要,数据类型选择可以有以下原则: 1,更小的通常更好;更小的数据类型通常更快,因为它们占用更少的磁盘,内存,CPU缓存,处理时需要的 CPU周期也少...

克温s ⋅ 2016/03/17 ⋅ 0

ALGO-158 算法训练 sign函数

  sign(x)是符号函数,如果x>0,则返回1;如果x=0,则返回0;如果x<0,则返回-1。   其中fabs为cmath中的绝对值函数。   const double eps=1e-6;   if (fabs(x) <= eps) {   //x是...

xnh_565175944 ⋅ 04/24 ⋅ 0

python核心编程-第五章-个人笔记

简介 ①Python中数字支持以下类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数 ②创建数字对象和给变量赋值一样】 ③用del删除对对象的引用。删除之后,无法再使用这个引用(变...

好好先生_1028 ⋅ 2015/11/18 ⋅ 0

理解浮点数

Example 首先从两个例子开始。 例 1,下例输出是? 结果: 例 2,下例输出是? 结果: 理解浮点数 从例 1 可知,浮点数表示的精度有限;由例 2 可知,同样为 4 Byte,float 和 int 的数据组织...

koala bear ⋅ 2016/10/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 43分钟前 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

[知乎]SSH框架

网上图书馆管理系统包括管理员管理和图书管理,图书借阅,查询模块等等,网上商城包括前台页面和后台管理页面,两个都是以前别人的实际项目,只是别人用的不是SSH,我把他们改用SSH了,除了S...

颖伙虫 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部