将一个数字字符串变为八位二进制数然后相加,最后结果为一个二进制数相加结果
String xxx = "1234";
char[] arr = xxx.toCharArray();
int len = arr.length;
String[] strings = new String[len];
for (int i = 0; i < len; i++) {
String temp = Integer.toBinaryString(Character.getNumericValue(arr[i]));
strings[i] = temp;
if (temp.length() < 8) {
for (int j = 0; j < 8 - temp.length(); j++) {
strings[i] = "0" + strings[i];
}
}
}
StringBuilder result = new StringBuilder();
String xxxx = result.toString();
for (int i = 0; i < strings.length; i++) {
String a = xxxx;
String b = strings[i];
int al = a.length() - 1;
int bl = b.length() - 1;
int carry = 0;
while (al >= 0 || bl >= 0) {
int sum = carry;
if (al >= 0) {
sum += (a.charAt(al) - '0');
al--;
}
if (bl >= 0) {
sum += (b.charAt(bl) - '0');
bl--;
}
System.out.println("------" + sum);
result.append(sum % 2);
carry = sum / 2;
}
if (carry != 0)
{
result.append(1);
}
System.out.println(i + ":" + result.substring(0, 8));
xxxx = result.reverse().toString().substring(0, 8);
System.out.println(i + ":" + result.toString());
result.delete(0, result.length());
}
System.out.println("last:" + Integer.parseInt(xxxx));