diff --git a/Zadanie-03/src/com/tylkowski/crc/CrcTask.java b/Zadanie-03/src/com/tylkowski/crc/CrcTask.java index b6c9df4..7e36a45 100644 --- a/Zadanie-03/src/com/tylkowski/crc/CrcTask.java +++ b/Zadanie-03/src/com/tylkowski/crc/CrcTask.java @@ -9,11 +9,24 @@ class CrcTask { private String rawMessage; CrcTask(String message, String rawMessage) { - this.message = formatMessage(message) + "0000000000000000"; + this.message = formatMessage(toBinary(message)) + "0000000000000000"; this.rawMessage = rawMessage; createGeneratingPolynomial(); } + private String toBinary(String s) { + byte[] bytes = s.getBytes(); + StringBuilder binary = new StringBuilder(); + for (byte b : bytes) { + int val = b; + for (int i = 0; i < 8; i++) { + binary.append((val & 128) == 0 ? 0 : 1); + val <<= 1; + } + } + return binary.toString(); + } + private String formatMessage(String message) { int firstNonZeroVal = 0; boolean found = false; @@ -166,6 +179,7 @@ class CrcTask { } boolean decode(String encodedString) { + encodedString = toBinary(encodedString); encodedString = fillPolyTo8(encodedString); short[] encodedShortArray = convertBinaryStringToShortArray(encodedString); encodedShortArray = swapPolynomialValues(encodedShortArray); diff --git a/Zadanie-03/src/com/tylkowski/crc/Main.java b/Zadanie-03/src/com/tylkowski/crc/Main.java index 77f226e..c71d643 100644 --- a/Zadanie-03/src/com/tylkowski/crc/Main.java +++ b/Zadanie-03/src/com/tylkowski/crc/Main.java @@ -3,21 +3,13 @@ package com.tylkowski.crc; public class Main { public static void main(String[] args) { - CrcTask crcTask = new CrcTask(toBinary(args[0]), args[0]); + // ex. in command line type "a" + CrcTask crcTask = new CrcTask(args[0], args[0]); System.out.println(crcTask.encode()); - System.out.println(crcTask.decode(toBinary(crcTask.encode()))); + String input = crcTask.encode(); + if (input.length() >= 3) System.out.println(crcTask.decode(input)); + } - private static String toBinary(String s) { - byte[] bytes = s.getBytes(); - StringBuilder binary = new StringBuilder(); - for (byte b : bytes) { - int val = b; - for (int i = 0; i < 8; i++) { - binary.append((val & 128) == 0 ? 0 : 1); - val <<= 1; - } - } - return binary.toString(); - } + }