⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javacrc实现.txt

📁 JAVA实现的CRC源码!供大家做为参考用!希望大家能用得上!
💻 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 + -