Zahldarstellung 1 ve Zahldarstellung 2 kısımlarında yazan sayıları long s1 = 101111;
long s2 = 101111; deki sayılarla yer değiştirirsen olur...
yani;
s1 toplanacak birinci sayı, s2'de ikinci sayı.
yeni halini gönderiyorum..
/************************************************** ***********************
* Compilation: javac BinaryConverter.java
* Execution: java BinaryConverter
*
* Converts an integer to and from its binary representation.
*
************************************************** ***********************/
public class Addiere {
// converts integer n into a base b string
static String toString(int n, int base) {
// special case
if (n == 0) return "0";
String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String s = "";
while (n > 0) {
int d = n % base;
s = digits.charAt(d) + s;
n = n / base;
}
return s;
}
// convert a String representing a base b integer into an int
static int fromString(String s, int b) {
int result = 0;
int digit = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= '0' && c <= '9')
digit = c - '0';
else if (c >= 'A' && c <= 'Z')
digit = 10 + c - 'A';
else return -1;
if (digit < b) result = b * result + digit;
else return -1;
}
return result;
}
public static long addiere(long binary_1, long binary_2, int basis)
{
int number1 = fromString(binary_1+"",basis);
int number2 = fromString(binary_2+"", basis);
if(number1==-1 || number2==-1) return -1;
long retVal = -1;
try{
retVal = Long.parseLong(toString( number1+number2 , basis ) );
}catch(Exception exc){}
return retVal;
}
public static void printResult(long number1, long number2, int basis)
{
System.out.println("a: " +number1+ " - " + fromString(""+number1,basis));
System.out.println("b: " +number2+ " - " + fromString(""+number2,basis));
System.out.println("+");
System.out.println("-------------");
System.out.println("c: " + addiere(number1,number2,basis) +" - "+fromString(""+addiere(number1,number2,basis),bas is));
System.out.println("\n----------------------------------------------------\n");
}
public static void main(String[] args) {
long s1 = 1001;
long s2 = 11;
int basis = 2;
printResult(s1,s2,basis);
s1 = 11011;
s2 = 1110;
printResult(s1,s2,basis);
s1 = 210;
s2 = 11;
basis = 2;
printResult(s1,s2,basis);
s1 = 0;
s2 = 773;
basis = 8;
printResult(s1,s2,basis);
s1 = 0;
s2 = 107;
printResult(s1,s2,basis);
s1 = 773;
s2 = 107;
printResult(s1,s2,basis);
s1 = 773;
s2 = 1239;
printResult(s1,s2,basis);
s1 = 950;
s2 = 192;
printResult(s1,s2,basis);
s1 = 9145;
s2 = 882;
basis = 10;
printResult(s1,s2,basis);
s1 = 11111111111L;
s2 = 1;
basis = 2;
printResult(s1,s2,basis);
s1 = 323;
s2 = 133;
basis = 4;
printResult(s1,s2,basis);
System.exit(0);
}
}
çalışıyor test ettim ama senin anlayıp, düzenlemen lazım