#include<iostream>
#include<fstream>
#include<string>
using namespace std;
ifstream in;
int cheak_parity;
int sum = 0;
int num = 0;
int main() {
string name;
char h_byte,l_byte;
int count = 0;
int a, b;
cin >> name;
in.open(name, ios::binary);
in.seekg(0, ios::end);
cheak_parity = in.tellg();
in.seekg(0, ios::beg);
while (count<cheak_parity/2) {
in >> h_byte;
in >> l_byte;
a = h_byte;
sum += (a << 8);
cout << hex << a << ":" << sum << "; ";
b = l_byte;
sum += b;
cout << hex << b << ":" << sum << "; ";
count++;
}
if (cheak_parity % 2 == 1)
{
in >> h_byte;
a = h_byte;
sum += (a << 8);
cout << hex << a << ":" << sum<<"; ";
cout << "00" << ":" << hex <<sum << "; ";
}
num = sum >> 16;
sum = sum & 0xFFFF;
sum = ~(sum + num);
sum = sum & 0xFFFF;
cout << endl<< "FCS-32:" << hex << sum << endl;
getchar();
getchar();
}
32位校验和
最新推荐文章于 2023-04-17 09:13:32 发布