请帮我看一下我的程序

bjfullr 2005-03-24 10:45:22
我写的是一个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));


}

}
}
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
apollo333 2005-03-25
  • 打赏
  • 举报
回复
先帮你顶。
007remember 2005-03-25
  • 打赏
  • 举报
回复
看看先

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧