
正文
二进制相加代码Java 二进制加法代码实现
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
二进制相加 怎么用java实现
两个数相加,会得到一个结果,和一个进位的结果,
然后将这个进位的结果后面加0补位,然后再和这个结果相加。如此递归,知道进位全部是0为
public class $ {
public static void main(String[] args) {
String s0 = "100";// 十进制4
StringBuffer result = new StringBuffer();
StringBuffer jinwei = new StringBuffer();
System.out.println(test(result, jinwei, ));
}
private static String test(StringBuffer result, StringBuffer jinwei, String s0, String {
// 没有进位了就退出
if (s0.length() 0 s0.indexOf("1") 0) {
return s1;
}
//位数补齐
int len0 = s0.length();
int len1 = s1.length();
int minLen = Math.max(len0, len1);
s0 = buqi(len0, minLen) + s0;
s1 = buqi(len1, minLen) + s1;
for (int i = s0.length() - 1; i = 0; i--) {
String str0 = s0.substring(i, i + 1);
String str1 = s1.substring(i, i + 1);
add(result, jinwei, str0, str1);
}
String tmpJinwei = jinwei.reverse().toString() + "0";
jinwei.delete(0, jinwei.length());
String tmpResult = result.reverse().toString();
result.delete(0, result.length());
return test(result, jinwei, tmpJinwei, tmpResult);
}
private static void add(StringBuffer result, StringBuffer jinwei, String str0, String str1) {
// 00相加为0,不进位
if ("0".equals(str0) "0".equals(str1)) {
result.append("0");
jinwei.append("0");
return;
}
// 11相加为0,进位1
if ("1".equals(str0) "1".equals(str1)) {
result.append("0");
jinwei.append("1");
return;
}
// 其他情况,相加为1,不进位
result.append("1");
jinwei.append("0");
}
private static String buqi(int len0, int minLen) {
String tmp = "";
for (int i = len0; i minLen; i++) {
tmp += "0";
}
return tmp;
}
}
相关问答
Q1: 跪求“java中二进制怎么表示”
java中二进制二进制相加代码Java的表示二进制相加代码Java:
1、Java中定义两个数二进制相加代码Java,然后分别打印出它们的二进制表示(例如7和-7):
System.out.println("Java二进制7: "+Integer.toBinaryString(7));
System.out.println("Java二进制-7: "+Integer.toBinaryString(-7));
输出:
Java二进制7: 111
Java二进制-7: 11111111111111111111111111111001
7的二进制就是111
-7转化二进制的过程:
(1)把-7转化成7二进制相加代码Java,二进制是 111
(2)Java中对于不满32位的int二进制自动补齐,所以变成二进制相加代码Java了 (29个0)111
(3)然后取反 (29个1)000
(4)然后加1 (29个1)001
扩展资料:
c语言中二进制的转换:
用函数转换itoa(值,数组名,进制)
#includestdio.h
#includestdlib.h
void main()
{
char str[8];
int i=8;
itoa(i,str,2);
printf("%s",str);
}
参考资料:
java二进制——百度百科
Q2: Java编程 编写一个计算加减乘除十进制变二进制的程序
package test;
import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个数");
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
System.out.println("请再输入一个数");
int num2 = scanner.nextInt();
int result = num1 + num2;
System.out.println("十进制结果:" + result);
String binary = Integer.toBinaryString(result);
System.out.println("二进制结果:" + binary);
}
}
只做了一个加,减、乘、除与加法同理!这样题希望还是自己做的好!呵呵!
关于二进制相加代码Java和二进制加法代码实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







