java中如何将十进制数字转化成二进制?

java中有没有什么方法将十进制转化成二进制的方法?再就是转化成二进制后,有没有什么方法可以判断它的第几位上是0,第几位上是1?

如果表达小于2^31-1的正数代码如下:

public void binaryToDecimal(int n){

int t = 0;  //用来记录位数

int bin = 0; //用来记录最后的二进制数

int r = 0;  //用来存储余数

while(n != 0){

r = n % 2;

n = n / 2;

bin += r * Math().pow(10,t);

t++; 

}

System.out.println(bin);

}

使用字符串的拼接(+)来实现大于2^31-1的数,代码如下:

public void binaryToDecimal(int n){

String str = "";

while(n!=0){

str = n%2+str;

n = n/2;

}

System.out.println(str);

}

可以右移后再与0x01进行&运算  得到第一位的数字判断判断它的第几位上是0,第几位上是1,代码如下:

class ByteMove 

{

public static void main(String[] args) 

{

int i = 7;

move(i);

}

static void move(int num){

for(int i= 0;i<6;i++){

System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));

}

}

}

扩展资料:

在windows下编译java文件、执行:

1、先创建一个txt,更改为test.java。

2、编写代码,为输出为holloword。

3、找到cmd,并进行打开cmd。

4、编译java文件,输入命令为javac test.java。

5、如果没有报错,查看当前目录下是否有class文件产生。

6、执行class文件,在命令输入java test,输出为holloword。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-26
java进制转换
java中进行二进制,八进制,十六进制,十进制间进行相互转换
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
第2个回答  推荐于2017-09-19
java.lang.Integer这个API包中有进制转换的函数
public static String toBinaryString(int i)
public static String toHexString(int i)
public static String toOctalString(int i)
这3个函数都可以将十进制的整数转换成二、一六、八进制数
不过转换后的结果都是字符串的形式

既然得到的是字符串
我想你当然就可以利用string.sub(x-1,x)的方法来判断该x位的数等于0还是1
之后再把x返回出来,那么就知道结果了本回答被提问者采纳
第3个回答  2006-10-13
需要这么做么,如果你愿意,你就可以直接把1个10进制的数当作2进制来看待的.判断他某几位是不是0可以用掩码的方法:

比如:

判断10进制10的第2位是不是1,可以用 10 & 2 是否等于0来得到,等于0,该位不是1,否则该位是1,原理, 10和2的2进制代码是:

1010 & 0010 = 0010 != 0 所以10的第2位是1,依次类推,用10&4去判断第3位是不是1.用6判断第2位和第3位是不是同时为1.
第4个回答  2021-05-06
package com;

import java.util.Scanner;

public class Demo {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入需要转换的数:");
System.out.println("转换之后为:"+io(toBin(input.nextInt())));
}
static String toBin(int hi) {
if(hi/2 == 0) {return Integer.toString(hi%2);}
return toBin(hi/2)+Integer.toString(hi%2);
}
static String io(String hi) {
if(hi.indexOf("-") >=0) {
hi = hi.replaceAll("-", "");
return "-"+hi;
}
return hi;
}
}
相似回答