• 提取2的幂

    这个方法用代码实现貌似有点麻烦,需要探测大小,我只实现了整数十进制到二进制的转化
/*
* 提取2的幂
*/
public static String TenToBin1(int ten) { int index = 0;
StringBuffer binBuffer = new StringBuffer(); //int类型是4个字节,32位,找到刚好大于输入的数的位置
for(int i = 0; i <= 32; i++) {
if((int)(Math.pow(2, i)) <= ten) {
continue;
} else {
index = i;
break;
}
}
//开始探测,若ten大于2的index次幂,就相减,对应位数为1
for(int j = index - 1; j >= 0; j--) {
if(ten - Math.pow(2, j) > 0) {
binBuffer.append("1");
ten = (int) (ten - Math.pow(2, j));
continue;
} else if(ten - Math.pow(2, j) < 0) {
binBuffer.append("0");
continue;
} else {
binBuffer.append("1");
index = j;
break;
}
} if(index != 0) {
for(int z = index - 1; z >= 0; z--) {
binBuffer.append("0");
}
} return binBuffer.toString(); }

测试

public static void main(String[] args) {
System.out.println(TenToBin1(3));
System.out.println(TenToBin1(8));
System.out.println(TenToBin1(9));
System.out.println(TenToBin1(16));
}



②基数相除,相乘,这里也只是实现了整数十进制的转化,由于double不精确,所以小数计算起来有点麻烦,有待解决

/*
* 基数连除、连乘法
*/
public static String TenToBin2(String tenString) { StringBuffer s = new StringBuffer();
StringBuffer s1 = new StringBuffer();
int index = tenString.indexOf('.');
if(index == -1) {
//取整数部分
int d = Integer.parseInt(tenString);
while(d != 0) {
s.append(d%2);
d = (int)(d/2);
}
String str = s.toString();
for(int i = str.length() - 1; i >= 0; i--) {
s1.append(str.charAt(i));
} } else {
//计算整数部分
String str1 = tenString.substring(0, index);
int integer = Integer.parseInt(str1);
while(integer != 0) {
s.append(integer%2);
integer = (int)(integer/2);
}
String str = s.toString();
for(int i = str.length() - 1; i >= 0; i--) {
s1.append(str.charAt(i));
} } return s1.toString() ; }

十进制转化为二进制Java实现的更多相关文章

  1. hdu5432Rikka with Array (数位dp+十进制转化为二进制)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  2. 用JS实现将十进制转化为二进制

  3. 【模板小程序】任意长度非负十进制数转化为二进制(java实现)

    妈妈再也不用担心十进制数过大了233(注意只支持非负数) import com.google.common.base.Strings; import java.math.BigInteger; imp ...

  4. Java中实现十进制数转换为二进制的三种思路

    Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...

  5. Java十进制转成二进制 八进制 十六进制

    int a = 357;//十进制转成二进制System.out.println(Integer.toBinaryString(a)); package com.swift; import java. ...

  6. Java查表法实现十进制转化成其它进制

    首先了解十进制转化成二级制的原理 156的二进制为: 156 % 2 = 78 …… 0 83 % 2 = 39 …… 0 39 % 2 = 19 …… 1 19 % 2 = 9 …… 1 9 % 2 ...

  7. Java十进制数转二进制的方法

    使用Integer.toBinaryString(num) ,可以把十进制数转换成二进制 //十进制转换成二进制 Integer.toBinaryString(num); binary 二进制 Sys ...

  8. java_十进制数转换为二进制,八进制,十六进制数的算法

    java_十进制数转换为二进制,八进制,十六进制数的算法 java Ê®½øÖÆÊýת»»Îª¶þ½øÖÆ,°Ë½øÖÆ,Ê®Áù½øÖÆÊýµÄË㕨 using System; using S ...

  9. 将十进制数据转换为二进制AND将二进制数据转换为十进制!

    一,将十进制数据转换为二进制:  //***********************************************            Console.WriteLine(&quo ...

随机推荐

  1. 尚硅谷springboot学习26-嵌入式servlet容器自动配置、启动原理

    EmbeddedServletContainerAutoConfiguration:嵌入式的Servlet容器自动配置 @AutoConfigureOrder(Ordered.HIGHEST_PREC ...

  2. Unity for VsCode

    安装以下两个插件 以下设置VsCode在换行保存时不删除tab空格

  3. Linux网络编程学习(六) ----- 管道(第四章)

    1.管道的定义 管道就是将一个程序的输出和另外一个程序的输入连接起来的单向通道,比如命令: ls -l|more,就建立了一个管道,获取ls -l的输出作为more的输入,数据就沿着管道从管道的左边流 ...

  4. php json 写入 mysql 的例子

    $a['aaa']='aaaa'; $a['bbb']='bbb'; $a['ccc']='ccc'; $arr['step_name']='kfkf'; $arr['process_name']=' ...

  5. elk中es集群web管理工具cerebro

    cerebo是kopf在es5上的替代者 安装es虽然不能再root下运行,但是cerebro 可以 run as root is ok wget https://github.com/lmeneze ...

  6. H5滑条(input type=range)

    input[type=range] { -webkit-appearance: none; width: 230px; border-radius: 10px; /*这个属性设置使填充进度条时的图形为 ...

  7. 《Java程序设计》第二周学习总结(一)

    教材学习内容总结 标识符.关键字 基本数据类型 类型转换运算 输入.输出数据 数组 教材学习中的问题和解决过程 问题1:在创建vim并编写完成后出现以下情况 问题1解决方案:打开虚拟机的文件目录,发现 ...

  8. linux resin 基本站点配置

    进入配置文件目录: [root@linuxidc resin-]# cd /usr/local/resin/conf/ 查看都有哪些配置文件: [root@linuxidc conf]# ls app ...

  9. Python程序中的进程操作

    之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程 ...

  10. 用nodejs搭建类似于C++的服务器后台.类似网易pomelo

    实际的情况,用nodejs跑业务,非常的快,只要用好其无阻塞和回调这两点,处理速度真的是杠杠的. 从年初开始,我用nodejs搭建了类似C++的服务器后台,也想和做同样的事情的朋友分享,本服务平台因为 ...