java十进制小数转二进制
1. 十进制整数
思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。
例子:
23/2 商: 11 余数: 1
11/2 商: 5 余数: 1
5/2 商: 2 余数: 1
2/2 商: 1 余数: 0
1/2 商: 0 余数: 1
代码实现:
public StringBuilder intToBinary(int deci) throws Exception{ StringBuilder binary = new StringBuilder(); while(in!=0){int quotient=in/2; //商 int remender=in%2; //余数 binary.append(remender); in=quotient; }return binary.reverse(); }public static void main(String[] args){try {DecimalToBinary t = new DecimalToBinary(); System.out.println(t.intToBinary(23)); }catch (Exception e){e.printStackTrace(); } }
Output: 10111
2. 十进制小数
思路: 小数乘以2,每次乘完取整(1或者0)放到数组中,然后将剩余小数部分继续乘以2,直到小数部分为0或者达到所要求的精度为止,再讲所有余数按顺序打印出来。
例子:
0.813*2 整数部分: 1 小数部分: 0.626
0.626*2 整数部分: 1 小数部分: 0.252
0.252*2 整数部分: 0 小数部分: 0.504
0.504*2 整数部分: 1 小数部分: 0.008
0.008*2 整数部分: 0 小数部分: 0.016
代码实现:
public StringBuilder doubleToBinary(double d) throws Exception{return doubleToBinary(d,4);//利用方法重装实现默认参数 }public StringBuilder doubleToBinary(double d,int count) throws Exception{if (count>32){throw new Exception("The max bit must less than 32!"); }if(count==0){throw new Exception("The min bit must bigger than 0"); }double multi=0; //每次的乘积 StringBuilder res=new StringBuilder(); while(count>=0){multi=d*2; if(multi>=1){res.append(1); d=multi-1; }else{res.append(0); d=multi; }count--; }return res; }
3. 十进制整数和小数
思路: 整数和小数分别转换,然后将两个数组以小数点为分割分别打印出来。
例子:
代码实现:
public StringBuilder allToBinary(double deci) throws Exception {int in=(int)deci; //取整数部分 double d= deci - in; //小数部分 StringBuilder total = new StringBuilder(); total.append(intToBinary(in)); total.append("."); total.append(doubleToBinary(d)); return total; }
4. 测试:
public static void main(String[] args){try {DecimalToBinary t = new DecimalToBinary(); System.out.println(t.intToBinary(23)); System.out.println("0."+t.doubleToBinary(0.23)); System.out.println(t.allToBinary(23.23)); }catch (Exception e){e.printStackTrace(); }
输出:
10111
0.00111
10111.00111
java十进制小数转二进制相关推荐
- java十进制小数转二进制方法(Java)StringBuilder
十进制小数转二进制方法(Java) 文章目录 十进制小数转二进制方法(Java) 重点: 1.整数部分的十进制转二进制 2.小数部分的十进制转二进制 3.可变的字符串类String Builder的使 ...
- java中char占的二进制,java数据类型与二进制详细介绍
java数据类型与二进制详细介绍 在java中 Int 类型的变量占 4个字节 Long 类型的变量占8个字节 一个程序就是一个世界,变量是这个程序的基本单位. Java基本数据类型 1. 整数类型 ...
- 十进制小数转换为二进制
十进制小数转换为二进制 采用乘2取整的方法 1.用2乘以十进制小数,将得到的乘积整数部分取出 2.再用2乘以余下的小数,再将乘积的整数部分取出 3.反复进行直到乘积的小数部分为0或者满足精度要求为止 ...
- java实现递归算法_如何在Java中实现二进制搜索算法而无需递归
java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...
- JAVA:实现BloomFilter二进制向量数据结构算法(附完整源码)
JAVA:实现BloomFilter二进制向量数据结构算法 package com.thealgorithms.datastructures.bloomfilter; import java.util ...
- 用VB代码将十进制小数转二进制,也说下vba自动打印
VB代码十进制小数转二进制? 一个十进制转二进制的函数 Public Function D2B(D As Integer) As StringD2B = ""Do While D ...
- java十进制转二进制简单算法
Java十进制转二进制简单算法 一.编程思路 可以运用简单的数学的计算的方法.如下 这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他 ...
- 十进制小数转二进制要乘二取整转换的原理?
以前自己学习进制的转换这一部分的时候总是不理解十进制小数转二进制时候用到的乘基取整法的原理,在网上也没有找到自己满意的解答.最近再次学习时突然有了新的理解,以下是个人对十进制小数转二进制小数原理的一些 ...
- matlab实现十进制小数转二进制
matlab实现十进制小数转二进制 clear,clc a=input('Please input a number:'); f=input('Please input the accuracy:') ...
最新文章
- 自定义控件(一) Activity的构成(PhoneWindow、DecorView)
- visual tree view在工具箱力没有_Visual-Inertial Odometry
- http强缓存在firefox和chrome之间的差异
- 常见的Java审计代码函数关键字_转载:Java代码审计汇总系列(一)——SQL注入
- 玩转oracle 11g(1):Oracle 11g的安装
- 敏捷开发系列学习总结(12)——给Scrum Master的十个建议,你值得拥有
- c程序语言符号的作用,c语言宏定义中的#,##,#@及\符号的作用
- python怎么使用自定义停用词_在Python中使用NLTK删除停用词
- osgearth 利用经纬度得到高程
- Rplidar A1利用Qt图形库进行周围环境的轮廓抓取
- 善于总结、不断反思做更好的自己
- 大禹电子:元宵佳节逛花灯,猜灯谜好不热闹
- Run-down Protection
- django MVT模式介绍
- 研发团队中最合适的开发测试比是多少?
- 微信公众号发送小程序卡片_微信公众号群发文章支持添加小程序卡片
- 如何设置桌面图标大小
- eclipse导入web项目出现红色叉叉
- vijos- P1383盗窃-黑珍珠 (python + 代码优化)
- java 中对象的称呼