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

📄 xicrc.cpp

📁 这是数学计算上常用的计算方法
💻 CPP
字号:
#include <string>
#include <iostream>
#include <iomanip>
#include "nr.h"
using namespace std;

// Driver for routine icrc

inline unsigned char lobyte(const unsigned short x)
{return (unsigned char)(x & 0xff);}

inline unsigned char hibyte(const unsigned short x)
{return (unsigned char) ((x >> 8) & 0xff);}

int main(void)
{
        string lin;
        unsigned short i1,i2;
        unsigned long n;

        for (;;) {
          cout << "Enter string: " << endl;
          getline(cin,lin);
          n=lin.length();
          if (n == 0) break;
          cout << lin << endl;
          i1=NR::icrc(0,lin,0,1);
          lin += hibyte(i1);
          lin += lobyte(i1);
          i2=NR::icrc(i1,lin,0,1);
          cout << "    XMODEM: String CRC, Packet CRC=    0x" << hex << i1;
          cout << "   0x" << i2 << endl;
          lin.erase(n,2);
          i1=NR::icrc(i2,lin,0xff,-1);
          lin += ~lobyte(i1);
          lin += ~hibyte(i1);
          i2=NR::icrc(i1,lin,0xff,-1);
          cout << "      X.25: String CRC, Packet CRC=    0x" << hex << i1;
          cout << "   0x" << hex << i2 << endl;
          lin.erase(n,2);
          i1=NR::icrc(i2,lin,0,-1);
          lin += lobyte(i1);
          lin += hibyte(i1);
          i2=NR::icrc(i1,lin,0,-1);
          cout << " CRC-CCITT: String CRC, Packet CRC=    0x" << hex << i1;
          cout << "   0x" << hex << i2 << endl;
        }
        cout << "Normal completion" << endl;
        return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -