📄 javacrc实现.txt
字号:
package crc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Frame1 extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
JButton jButton1 = new JButton();
JTextField jTextField3 = new JTextField();
JLabel jLabel3 = new JLabel();
//Construct the frame
public Frame1() {)
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization;
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jLabel1.setText("源串:");
jLabel1.setBounds(new Rectangle(198, 32, 40, 16));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.settitle("Frame title");
jLabel2.setText("CRC多项式串:");
jLabel2.setBounds(new Rectangle(178, 95, 81, 16));
jTextField1.setText("");
jTextField1.setBounds(new Rectangle(119, 61, 199, 22));
jTextField2.setText("");
jTextField2.setBounds(new Rectangle(119, 115, 199, 22));
jButton1.setBounds(new Rectangle(182, 157, 73, 25));
jButton1.setText("计算");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jTextField3.setBounds(new Rectangle(119, 220, 199, 22));
jLabel3.setText("目的串:");
jLabel3.setBounds(new Rectangle(177, 202, 82, 16));
contentPane.add(jTextField1, null);
contentPane.add(jTextField3, null);
contentPane.add(jLabel3, null);
contentPane.add(jButton1, null);
contentPane.add(jTextField2, null);
contentPane.add(jLabel2, null);
contentPane.add(jLabel1, null);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void jButton1_actionPerformed(ActionEvent e) {
String source,key,poly;
int source_bin,key_bin,crc;
//取得源帧和CRC多项式串
source=jTextField1.getText();
source_bin=Integer.parseInt(source,2);
key=jTextField2.getText();
key_bin=Integer.parseInt(key,2);
source_bin<<=(key.length()-1);
crc=source_bin;
key_bin<<=(source.length()-1);
int temp=1<<source.length()+key.length()-2;
for(int i=0;i<source.length();i++){
int flag=temp&source_bin ;
if(flag!=0){
source_bin=source_bin^key_bin;
flag=0;
}
temp>>=1;
key_bin>>=1;
};
crc+=source_bin;
jTextField3.setText(Integer.toBinaryString(crc));
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -