Witam,
piszę prosty kod, coś na wzór szyfru Cezara( przy czym na razie tylko dla cyfr).
Korzystam z tablicy gdzie są poszczególne cyfry z liczby i zwiększam ich wartość o 3, następnie z cyfr w tablicy tworzę liczbę.
Mam problem w momencie gdy chce na "zaszyfrowanej" liczbie chcę wykonać operacje + i *.
Tzn. mogę pomnożyć, nie mogę dodać.
Kod zamieszczam poniżej.
public class MechanizmSzyfrujacy extends ProsteSzyfrowanieLiczb1 {
int[] tablicaLiczbPrzesunietych;
public int szyfrujStala(String s2){
final int dlugoscCiagu = s2.length();
int[] tablicaLiczbWprowadzonych;
tablicaLiczbWprowadzonych = new int[dlugoscCiagu];
for (int i=0 ; i<dlugoscCiagu; i++ )
{
tablicaLiczbWprowadzonych[i] = Integer.valueOf(s2.substring(i,i+1));
}
int przesuniecieCyfr = 3;
int[] tablicaLiczbPrzesunietych;
tablicaLiczbPrzesunietych = new int[dlugoscCiagu];
for (int i=0; i<dlugoscCiagu; i++){
if (tablicaLiczbWprowadzonych[i] >6){
tablicaLiczbPrzesunietych[i] = tablicaLiczbWprowadzonych[i] + przesuniecieCyfr -10;
}
else {
tablicaLiczbPrzesunietych[i] = tablicaLiczbWprowadzonych[i] + przesuniecieCyfr;
}
}
int liczbaZaszyfrowana;
liczbaZaszyfrowana=0;
for (int i=0; i<dlugoscCiagu; i++) {
liczbaZaszyfrowana = liczbaZaszyfrowana + (int) (tablicaLiczbPrzesunietych[i] * Math.pow(10 , dlugoscCiagu-1-i));
}
final int wynikSzyfrowania;
wynikSzyfrowania = liczbaZaszyfrowana;
System.out.println("wynikSzyfrowania = " + wynikSzyfrowania);
System.out.println("wynikSzyfrowania * 2 =" + wynikSzyfrowania * 2 );
System.out.println("wynikSzyfrowania + 1000000 =" + wynikSzyfrowania + 1000000 );
return wynikSzyfrowania;
}
}
Pytanie brzmi: dlaczego mogę pomnożyć, a dodać nie mogę?