java 二进制累加 注意是累加,不是两个加法

图片说明

参数是个二进制数组 ,如图所示,图片是N个二进制字符串,求N个二进制字符串之和。

Java实现二进制累加
public class ToBin {
public static void main(String[] args) {
String[] arr=new String[20];
int a=0;
for (int i = 0; i < arr.length; i++) {
int tem=(i+1);
a+=tem;
String str=Integer.toString(tem,2),s="",sa=Integer.toBinaryString(a);
if(str.length()<8) {
for(int n=str.length();n<8;n++) {
s+="0";
}
str=s+str;
}
s="";
if(sa.length()<8) {
for(int n=sa.length();n<8;n++) {
s+="0";
}
sa=s+sa;
}
System.out.println("十进制:\t"+tem+"\t二进制:\t"+str+"\t累加十进制:\t"+a+"\t累加二进制:\t"+sa);
}
}
}

你的累加是什么意思?二进制逢二进一这样加吗?循环一遍数组转化为十进制累加,然后再转为二进制?

我不知道你的累加是怎么定义的

1、如果不存在 逢2进1 的概念,那就只需用 异或运算
2、如果存在 逢2进1 的问题,
\ 要么你自己用 模拟法 写个加法器,
\ 要么把所有二进制数转成十进制,相加后,再转换回去二进制

转成十进制加起来转回来嘛。