java定义一个十进制转二进制的方法
时间: 2023-09-15 10:16:36 浏览: 97
以下是Java定义一个十进制转二进制的方法的示例代码:
```java
public static String decimalToBinary(int decimal) {
StringBuilder binary = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 2;
binary.insert(0, remainder);
decimal /= 2;
}
return binary.toString();
}
```
该方法将一个十进制数作为参数传递,并返回一个表示该数的二进制字符串。它使用了一个StringBuilder对象来构建二进制字符串,并使用了一个while循环来反复地将余数插入到字符串的开头,直到十进制数变为0。最后,该方法返回二进制字符串。
相关问题
java十进制转二进制代码
下面是使用Java编写的十进制转二进制的代码:
```java
public class DecimalToBinary {
public static void main(String[] args) {
int decimalNumber = 17;
String binaryNumber = decimalToBinary(decimalNumber);
System.out.println("二进制表示:" + binaryNumber);
}
public static String decimalToBinary(int decimal) {
if (decimal == 0) {
return "0";
}
StringBuilder binary = new StringBuilder();
while (decimal > 0) {
binary.insert(0, decimal % 2); // 从右到左,逐位计算二进制值
decimal /= 2;
}
return binary.toString();
}
}
```
在此示例中,我们将整数17转换为二进制。我们创建了一个名为`decimalToBinary`的静态方法,接受一个十进制数作为参数,返回一个字符串,表示该数的二进制值。
在方法的主体中,我们首先检查特殊情况,即当输入为0时,直接返回字符串"0"。
然后,我们使用一个`StringBuilder`对象`binary`来构建二进制字符串。我们使用`while`循环,通过反复对输入的十进制数进行模2运算和整除2运算,计算每一位的二进制值,并将其追加到`binary`字符串的开头。最后,我们将`binary`转换为字符串并返回。
在`main`方法中,我们定义一个整数变量`decimalNumber`,并将其设置为我们要转换的十进制数(在此示例中为17)。然后,我们调用`decimalToBinary`方法,将返回的二进制值打印在控制台上。
写一个任意进制转换的java方法
好的,下面是一个将任意进制数转换为十进制数的Java方法,可以接受两个参数:要转换的数和原数的进制。例如,要将二进制数 "1010" 转换为十进制数,调用该方法时传入参数 ("1010", 2)。
```java
public static int toDecimal(String num, int base) {
int decimal = 0;
int power = 0;
for (int i = num.length() - 1; i >= 0; i--) {
int digit = getDigit(num.charAt(i));
decimal += digit * Math.pow(base, power);
power++;
}
return decimal;
}
private static int getDigit(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
} else {
return c - 'A' + 10;
}
}
```
该方法先定义了两个变量:`decimal` 和 `power`,分别表示转换后的十进制数和当前位数的权值。然后从最高位开始遍历原数的每一位,将每一位的权值乘以对应位上的数字,并累加到十进制数上。最后返回转换后的十进制数。
其中,`getDigit` 方法用于将任意进制下的字符转换为对应的数字,如果是数字字符,则直接减去字符 '0' 得到数字,如果是字母字符,则减去字符 'A' 得到数字并加上 10。
如果需要将十进制数转换为任意进制数,可以使用类似的方法,将上面的 `Math.pow(base, power)` 替换成对应进制下的权值即可。