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

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


相关推荐

  • pycharm环境变量配置失败_pycharm配置anaconda虚拟环境

    pycharm环境变量配置失败_pycharm配置anaconda虚拟环境去年编程的时候其实就看到有一些提示信息说,2021年元旦之后,python3.5就不再支持了。没想到今天配置新电脑,下载了新的pycharm版本的时候,就遇到这个问题如果一个环境前面显示了unsupported那表明,这个版本太老了,不再被支持。参考Pycharm社区文档:ConfigureaPythoninterpreter当pycharm不再支持一个过期的python版本时,对应的python编译器会被标记为unsupported…

    2022年8月28日
    2
  • [译] Android 生命周期备忘录 — 第三部分:Fragments

    [译] Android 生命周期备忘录 — 第三部分:Fragments

    2021年7月4日
    76
  • 数据分析决策树算法_大数据决策树算法

    数据分析决策树算法_大数据决策树算法在2006年12月召开的IEEE数据挖掘国际会议上,与会的各位专家选出了当时的十大数据挖掘算法(top10dataminingalgorithms)。本博客的十大数据挖掘算法系列已经介绍过其中的5个。本文主要介绍决策树中的C4.5,这也是当年位列十大数据挖掘算法之首的经典算法,最后,我们还将演示在Weka(怀卡托智能环境)中进行数据挖掘的实际操作方法

    2022年5月3日
    27
  • Java基础篇:抽象类与接口

    Java基础篇:抽象类与接口

    2021年10月3日
    48
  • js十大算法[通俗易懂]

    js十大算法[通俗易懂]JS的十大经典算法冒泡排序(BubbleSort)冒泡排序须知:作为最简单的排序算法之一,冒泡排序给我的感觉就像Abandon在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。。。冒泡排序还有一种优化算法,就是立一个flag,当在一趟序列遍历中元素没有发生交换,则证明该序列已经有序。但这种改进对于提升性能来说并没有什么太大作用。。。什么时候最快(BestCases):当输入的数据已经是正序时(都已经是正序了,我还要你冒泡排序有何用啊。。。。)什么时候最慢…

    2022年6月18日
    29
  • 大疆网上测评题库_【大疆在线测试有几套题啊?】-看准网

    大疆网上测评题库_【大疆在线测试有几套题啊?】-看准网写面经,攒人品。大疆服务运营培训生。1.大疆网上笔试题(比较独创,很有趣,也有歇跟大疆相关的题,要比较熟悉大疆),笔试过后,有岗位笔试作业。2.大疆服务运营培训生笔试作业题目。三道大题,开放性题目,专业和岗位相关,涉及报告类题目。规定期限内提交,审核,通过后进入面试环节。3.一面,微信视频面试。提前约定时间,到点准时打来,直奔主题。自我介绍,针对个人经历开始提问,最后会用英文简单问答一下看英语能力…

    2022年6月18日
    62

发表回复

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

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