View Single Post
Eski 20/11/2004, 17:47   #6 (permalink)
based
Üye
 
Üyelik Tarihi: 11/2004
Mesaj: 6
Varsayılan

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
based hatta değil   Alıntı Yaparak Yanıtla