Here you can find the source of check(BitSet originalMessage, int messageLength, BitSet polynomial, int polynomialLength)
public static BitSet check(BitSet originalMessage, int messageLength, BitSet polynomial, int polynomialLength)
//package com.java2s; /******************************************************************************* * SDR Trunk /*ww w.ja v a 2s. com*/ * Copyright (C) 2014 Dennis Sheirer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/> ******************************************************************************/ import java.util.BitSet; public class Main { public static BitSet check(BitSet originalMessage, int messageLength, BitSet polynomial, int polynomialLength) { //Make a copy of the message, since we're going to modify it BitSet copy = originalMessage.get(0, messageLength); //Iterate through the message bits for (int x = 0; x < messageLength; x++) { //If we're aligned against a starting 1 in the message, divide it if (copy.get(0)) { copy.xor(polynomial); } //Left shift the message copy = copy.get(1, messageLength + polynomialLength - x); } return copy.get(0, polynomialLength); } }