• 提取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. ansible 问题

    如下图,A服务器上用普通账号ansible有时就会报错,但有时却又正常,可以连接成功,用root账号执行ansible就完全没问题. 仅仅是这一台服务器有问题,其他都完全正常..ansible 文件删 ...

  2. alert()、confirm()、prompt()的区别

    使用消息框 使用警告.提示和确认 可以使用警告.确认和提示消息框来获得用户的输入.这些消息框是 window 对象的接口方法.由于 window 对象位于对象层次的顶层,因此实际应用中不必使用这些消息 ...

  3. (转).net反编译工具JustDecompile

    开源的反编译工具  JustDecompile https://www.telerik.com/blogs/justdecompile-engine-becomes-open-source https ...

  4. typedef typename

    所以根据上述两条分析,  typedef typename RefBase::weakref_type weakref_type; 语句的真是面目是: typedef创建了存在类型的别名,而typen ...

  5. Unity之AssetBundle打包

    AssetBundle Resources:表示U3D自动将资源打成一个AssetBundle包,所有放在Resources下的文件夹都会打成一个AssetBundle包,资源非常大,Resource ...

  6. VueJs学习笔记

      在cmd下,进入目录之后 cd 到项目目录下 1 安装node cnpm install   2 启动或者调试 cnpm start (或是npm run dev) 3 上线: npm run b ...

  7. LAB4

    鼠标放上去可以看文件说明,exception则在exception中处理 文件头里面穿信息,为404 out.flush();把以前的全部冲掉了,所以需要放在后面

  8. [leetcode]87. Scramble String字符串树形颠倒匹配

    Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...

  9. github管理项目

    1.在GitHub上创建一个项目,然后拷贝git地址. 2.在本地打开GIT CMD,然后建立一个文件夹,输入git clone 上面拷贝的git地址. 3.文件夹下会多出一个以你创建的项目名字的文件 ...

  10. redis CentOS6.5安装及集群部署

    .下载redis source包 链接:https://pan.baidu.com/s/122ZCjNvjl9Jx6M2YsLrncw 密码:92ze 2.解压 tar -xzf redis-3.2. ...