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

将十进制小数转化为二进制小数小数表示原理你了解小数的表示原理吗?我的十进制小数换成二进制该如何表示?比如: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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ringbuffer 无锁队列_wear ring

    ringbuffer 无锁队列_wear ring最近常收到SOD框架的朋友报告的SOD的SQL日志功能报错:文件句柄丢失。经过分析得知,这些朋友使用SOD框架开发了访问量比较大的系统,由于忘记关闭SQL日志功能所以出现了很高频率的日志写入操作,从而偶然引起错误。后来我建议只记录出错的或者执行时间较长的SQL信息,暂时解决了此问题。但是作为一个热心造轮子的人,一定要看看能不能造一个更好的轮子出来。前面说的错误原因已经很直白了,就是频繁的日志写入导…

    2025年10月18日
    3
  • Java日志管理

    Java日志管理

    2021年6月8日
    102
  • 10款好用的谷歌chrome浏览器插件、扩展程序,用起来很爽哦

    10款好用的谷歌chrome浏览器插件、扩展程序,用起来很爽哦TOP1:AdblockPlus介绍:AdblockPlus是Chrome浏览器中非常流行的一款广告拦截插件,AdblockPlus的用户多达数百万之多,在全球范围内都有很高的使用评价,AdblockPlus是由一个开源社区来维护。TOP2:OfficeEditingforDocs,Sheets&Slides介绍:officeediting是一款可…

    2022年4月29日
    89
  • vmware15激活码【2021.8最新】

    (vmware15激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html70YZDJVTFP-eyJsa…

    2022年3月26日
    112
  • Fiddler工具之Filters[通俗易懂]

    Fiddler工具之Filters[通俗易懂]Fiddler工具之FiltersFiddler是一个强大的抓包工具,可以抓取Http/Https协议的数据包,也可以实现截包、过滤包,修改包等等,今天我们一起学习一下Fildder中Filters功能的滤过包和截包;1、首先打开Fiddler主界面,查看右侧功能区选择Filfters标签,勾选UseFilters复选框;(图1)Hosts配置2、Fiddler默认是会拦截所有的…

    2022年5月11日
    42
  • 前端开发电脑配置(做前端用什么笔记本电脑)

    我们在刚入职的时候,公司会让我们自己来配置电脑。下面是一些实用性的软件。1.VisualStudioCode这是我们前端开发人员相对来说最多使用的代码编辑器了,可以下载各种插件来辅助我们编写代码。下载链接:https://code.visualstudio.com/.2.Chrome浏览器谷歌浏览器,是目前最全面的浏览器,对我们写的代码非常友好,包括也支持各种各样的插件。下载链接:https://www.google.cn/chrome/.注:我这个是安装了csdn出品的插件

    2022年4月9日
    168

发表回复

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

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