java 二进制加法实现10000以内
时间: 2023-08-02 20:08:48 浏览: 47
下面是Java代码实现10000以内的二进制加法:
```java
public class BinaryAddition {
public static void main(String[] args) {
int num1 = 100;
int num2 = 200;
int sum = num1 + num2;
String binary = Integer.toBinaryString(sum);
// 补足 0,使二进制表示长度为 16
while (binary.length() < 16) {
binary = "0" + binary;
}
System.out.println("二进制表示:" + binary);
}
}
```
在上面的代码中,我们首先定义了两个整数 `num1` 和 `num2`,然后将它们相加得到 `sum`。接着,我们使用 `Integer.toBinaryString()` 方法将 `sum` 转换为二进制字符串。最后,我们使用一个循环来补足 0,使二进制表示长度为16位。最终,我们输出二进制表示。
相关问题
java 二进制加法 数组的方法实现10000以内
下面是Java代码实现10000以内的二进制加法,使用数组的方法实现:
```java
public class BinaryAddition {
public static void main(String[] args) {
int[] binary1 = {1, 0, 1, 0};
int[] binary2 = {1, 1, 0, 1};
// 补足 0,使两个二进制数位数相等
while (binary1.length < binary2.length) {
binary1 = insertZero(binary1);
}
while (binary2.length < binary1.length) {
binary2 = insertZero(binary2);
}
int[] result = new int[binary1.length];
int carry = 0;
for (int i = binary1.length - 1; i >= 0; i--) {
int bit1 = binary1[i];
int bit2 = binary2[i];
int sum = bit1 + bit2 + carry;
// 计算当前位的值和进位
int bit = sum % 2;
carry = sum / 2;
// 将当前位的值添加到结果数组中
result[i] = bit;
}
// 如果最高位有进位,则在结果数组中添加 1
if (carry == 1) {
result = insertOne(result);
}
// 输出二进制表示
System.out.print("二进制表示:");
for (int i : result) {
System.out.print(i);
}
}
// 插入一个 0 到数组的最前面
private static int[] insertZero(int[] arr) {
int[] newArr = new int[arr.length + 1];
newArr[0] = 0;
System.arraycopy(arr, 0, newArr, 1, arr.length);
return newArr;
}
// 插入一个 1 到数组的最前面
private static int[] insertOne(int[] arr) {
int[] newArr = new int[arr.length + 1];
newArr[0] = 1;
System.arraycopy(arr, 0, newArr, 1, arr.length);
return newArr;
}
}
```
在上面的代码中,我们首先定义了两个二进制数组 `binary1` 和 `binary2`,然后使用一个循环来补足 0,使两个二进制数位数相等。接着,我们创建一个新的整数数组 `result` 用来保存计算结果。然后,我们从最低位开始遍历这两个二进制数,逐位进行加法运算,并计算出当前位的值和进位。最后,如果最高位有进位,则在结果数组中添加 1。最终,我们输出二进制表示。在这个实现中,我们还定义了两个辅助方法 `insertZero()` 和 `insertOne()` 来插入 0 和 1 到数组的最前面。
java 二进制加法实现两个二进制数的位数在10000以内
下面是Java代码实现两个二进制数的位数在10000以内的二进制加法:
```java
public class BinaryAddition {
public static void main(String[] args) {
String binary1 = "1010";
String binary2 = "1101";
// 补足 0,使两个二进制数位数相等
while (binary1.length() < binary2.length()) {
binary1 = "0" + binary1;
}
while (binary2.length() < binary1.length()) {
binary2 = "0" + binary2;
}
StringBuilder result = new StringBuilder();
int carry = 0;
for (int i = binary1.length() - 1; i >= 0; i--) {
int bit1 = binary1.charAt(i) - '0';
int bit2 = binary2.charAt(i) - '0';
int sum = bit1 + bit2 + carry;
// 计算当前位的值和进位
int bit = sum % 2;
carry = sum / 2;
// 将当前位的值添加到结果字符串中
result.append(bit);
}
// 如果最高位有进位,则在结果字符串中添加 1
if (carry == 1) {
result.append("1");
}
// 反转结果字符串并输出
System.out.println("二进制表示:" + result.reverse().toString());
}
}
```
在上面的代码中,我们首先定义了两个二进制字符串 `binary1` 和 `binary2`,然后使用一个循环来补足 0,使两个二进制数位数相等。接着,我们创建一个 `StringBuilder` 对象 `result` 用来保存计算结果。然后,我们从最低位开始遍历这两个二进制数,逐位进行加法运算,并计算出当前位的值和进位。最后,如果最高位有进位,则在结果字符串中添加 1。最终,我们将结果字符串反转并输出二进制表示。