我写的是一个java写的CRC校验,就是输入一段二进制码,输出CRC校验码,但输出结果一直是零
程序如下:
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;/*
 * Created on 2005-3-19
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 *//**
 * @author llr
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class CRCCheck
implements ActionListener{
JFrame frame;
JTextField SendMessage;
JTextField AcceptMessage;
JTextField Polynomial;
JLabel inputlabel;
JLabel outputlabel;
JLabel Polynomiallabel;
JButton creatCRCDigital;

public CRCCheck(){

//初始化组件
    frame = new JFrame("CRC校验");
    frame.setSize(180,240);
    SendMessage = new JTextField(15);
    AcceptMessage = new JTextField(15);
    //AcceptMessage.setText("");
    AcceptMessage.setEditable(false);
    Polynomial = new JTextField("110101",15);
    Polynomial.setEditable(false);
    inputlabel = new JLabel("请输入发送比特序列:");
    Polynomiallabel = new JLabel("生成多项式:");
    outputlabel = new JLabel("生成的CRC校验码序列:");
    creatCRCDigital = new JButton("CRC校验");
    
    //添加组件
Container c = frame.getContentPane();
    c.setLayout(new FlowLayout());
    c.add(inputlabel);
    c.add(SendMessage);
    c.add(Polynomiallabel);
    c.add(Polynomial);
    c.add(outputlabel);
    c.add(AcceptMessage);
    c.add(creatCRCDigital);
    creatCRCDigital.addActionListener(this);
    
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
} public static void main(String[] args) {
new CRCCheck();
}
/* (non-Javadoc)
 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 */
public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub
 if(e.getSource() == creatCRCDigital) {
StringBuffer strBu = new StringBuffer(SendMessage.getText());
strBu.append("00000");

String str = new String(strBu);
char[] digits = str.toCharArray();
char[] Poly = (Polynomial.getText()).toCharArray();
for (int i = 0 ; i <= digits.length-Poly.length ; i++){
if (digits[i] == 1)
for (int j = 0 ; j < Poly.length ; j++) 
//digits[i+j] ^= Poly[j];
digits[i+j]=(char) (digits[i+j]^Poly[j]);
}
for (int i = 0 ; i < digits.length; i++) {//测试
System.out.print(digits[i]);
} String a = new String(digits , digits.length-Poly.length+1, Poly.length-1);
//System.out.println();
//System.out.println(a);
strBu.replace(strBu.length()-Poly.length+1, strBu.length(), a);
            AcceptMessage.setText(new String(strBu));
            

} }
}