将十进制小数转化为二进制小数

将十进制小数转化为二进制小数小数表示原理你了解小数的表示原理吗?我的十进制小数换成二进制该如何表示?比如:0.3的二进制表示为:0.0100110011001….(小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。0.8125×2=1.625取整1,小数部分是0.6250.625×2=1.25取整1,小数部分是0.250.25×2=0.5取整0,小

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
小数表示原理

你了解小数的表示原理吗?

我的十进制小数换成二进制该如何表示?

比如:0.3 的二进制表示为:0.0100110011001….

(小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。

0.8125×2=1.625 取整1,小数部分是0.625

0.625×2=1.25 取整1,小数部分是0.25

0.25×2=0.5 取整0,小数部分是0.5

0.5×2=1.0 取整1,小数部分是0,结束

所以0.8125的二进制是0.1101)

import java.math.BigDecimal;
import java.util.Scanner;

public class H4 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String input = scanner.nextLine();
		BigDecimal num = BigDecimal.valueOf(Double.parseDouble(input));
		String output="";
		trans(num,output);
	}
	public static void trans(BigDecimal num,String output) {
		num = num.multiply(BigDecimal.valueOf(2));
		String tmp = num.toString().substring(0, 1);//取小数点前一位
		output +=tmp;
		num=num.subtract(BigDecimal.valueOf(Double.parseDouble(tmp)));
		if(num.compareTo(BigDecimal.ZERO)==0||output.length()==10) {//如果num=0或者小数点后有10位就停止递归
			System.out.println("0."+output);
			return;
		}
		trans(num,output);
	}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189801.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java applet详解

    Java applet详解1.为啥使用applet?如果不是因为计算机二级或是某些该死的考试中需要出题,,我想我是不会理会这中东西的,毕竟这货淘汰了,为啥使用?为了考试。注:applet是和html或者是jsp一起使用的,不能单独运行(当然你可以使用appletviewer命令或者是ide去运行),具体的使用将在代码中体现。2.applet生命周期初始化init():在这个方法中可以设置一些初始值…

    2022年7月8日
    23
  • c# Response.ContentType类型汇总

    c# Response.ContentType类型汇总 application/activemessageapplication/andrew-insetapplication/applefileapplication/atomicmailapplication/dca-rftapplication/dec-dxapplication/mac-binhex40hqxapplication/mac-compactprocptapplication/

    2022年7月19日
    31
  • 大数据科研解决方案「建议收藏」

    大数据科研解决方案「建议收藏」第一章建设背景1.1国家政策2017年1月工业和信息化部正式发布了《大数据产业发展规划(2016-2020年)》,明确了“十三五”时期大数据产业的发展思路、原则和目标,将引导大数据产业持续健康发展,有力支撑制造强国和网络强国建设。2018年9月工信部公示“2018年大数据产业发展试点示范项目名单”,公布了包括大数据存储管理、大数据分析挖掘、大数据安全保障、产业创新大数据应用、…

    2022年5月30日
    54
  • CouchBase_couchbase数据库

    CouchBase_couchbase数据库1.CouchBase是什么简单来说CouchBase是一款开源的,分布式的nosql数据库,主要用于分布式缓存和数据存储领域。能够通过managecache提供快速的亚毫米级别的k-v存储操作,

    2022年8月2日
    8
  • Java版本历史「建议收藏」

    Java版本历史「建议收藏」Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包。从J2SE1.4开始,Java语言的变动由JavaCommunityProcess(JCP)管理,JCP使用Java规范请求(JavaSpecificationRequests,JSRs)来建议和定义对Java平台内容的新增和修改。Java语言由Java语言规范(JavaLanguageSpecification,JLS)定义,对JLS的更改则根据JSR901(页面存档备份,存于互联网档案馆)管理。

    2022年7月9日
    19
  • ubuntu apache2配置详解(含虚拟主机配置方法)[通俗易懂]

    ubuntu apache2配置详解(含虚拟主机配置方法)[通俗易懂]在Windows下,Apache的配置文件通常只有一个,就是httpd.conf。但我在UbuntuLinux上用apt-getinstallapache2命令安装了Apache2后,竟然发现它

    2022年7月3日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号