Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ps2;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.nio.file.Files;
- import java.nio.file.Paths;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Scanner;
- public class zad2 {
- public static void main(String[] args) throws FileNotFoundException {
- // TODO Auto-generated method stub
- System.out.println("Podaj wielomian");
- String s1 = new Scanner(System.in).nextLine();
- System.out.println("Podaj ziarno");
- String s2 = new Scanner(System.in).nextLine();
- System.out.println("Podaj kod");
- char[] kod = new Scanner(System.in).nextLine().toCharArray();
- int size = s1.length();
- ArrayList<Integer> bit = new ArrayList<>();
- int wielomian = Integer.parseInt(s1, 2);
- int seed = Integer.parseInt(s2, 2);
- ArrayList<Integer> one_position = new ArrayList<>(); // pozycje jedynek w wielomianie
- for (int a = 0; a < size; a++)
- if (((wielomian >> a) & 1) == 1)
- one_position.add(a);
- for (int a = 0; a < kod.length; a++) {
- int liczba = seed >> 1; // przesuwamy liczbe
- int wynik = (seed >> one_position.get(0)) & 1; // wynik rowna sie wartosci seeda w pierwszej pozycji wielomianu
- for (int b = 1; b < one_position.size(); b++)
- wynik = ((seed >> one_position.get(b)) & 1) ^ wynik; // wynik rowna sie kolejnymi xorami seeda w pozycji wielomianu
- if (wynik == 1)
- liczba = liczba | (1 << size - 1); // jezeli wynik = 1 to dodajemy do liczby na poczatku jedynke
- else
- liczba = liczba & ~(1 << size - 1); //jezeli inaczej to dodajemy zero
- seed = liczba; // seed staje sie powstała liczba
- bit.add((seed >> size - 1) & 1); //do listy bit dodajemy najstarsza wartosc seeda
- }
- for (int a = 0; a < kod.length; a++) {
- int liczba = (int) kod[a];
- liczba = liczba ^ bit.get(a); // kod xorujemy po kolei z lista bit i tak powstaje zaszyfrowany kod
- kod[a] = (char) liczba;
- }
- StringBuilder a = new StringBuilder().append(kod);
- System.out.println(a);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement