#include #include #include #include using namespace std; #define POLY 0x1021 string t; int a,e,c; unsigned short EncodeCRT(char *ptr, int count) { int crc; char i; crc = 0xffff; while (--count >= 0) { crc = crc ^ (int) *ptr++ << 8; i = 8; do { if (crc & 0x8000) crc = crc << 1 ^ 0x1021; else crc = crc << 1; } while(--i); } return (crc); } string CheckCrc(string message) { string crc="1000000100001"; for(int i=0;i<=message.length()-crc.length();) { for(int j=0;j or smth std::string bin; for(unsigned i = 0; i != hex.length(); ++i) bin += hex_char_to_bin(hex[i]); return bin; } void two(string &in) { } int main() { char* input; cout<<("1. Zakoduj wiadomosc"); cout<<("2. Odkoduj wiadomosc"); cout<<("3. Wyjscie"); int choice=0; cin>>choice; cin.ignore(); if(choice==1) { int cc=0; cout<<("Podaj dlugosc wiadomosci.(ilosc liter ze spacjami wlacznie)"); cin>>cc; input=new char[cc]; cout<<("Podaj wiadomosc do zaszyfrowania."); cin.ignore(); cin.getline(input,cc+1); unsigned short result =EncodeCRT(input,cc); for(int i=0;i>input3; string xd; std::stringstream ss; std::string bin; string hex=input3; for(unsigned i = 0; i != hex.length(); ++i) { switch(toupper(hex[i])) { case '0': bin+= "0000"; break; case '1': bin+= "0001"; break; case '2': bin+= "0010"; break; case '3': bin+= "0011"; break; case '4': bin+= "0100";break; case '5': bin+= "0101";break; case '6': bin+= "0110";break; case '7': bin+= "0111";break; case '8': bin+= "1000";break; case '9': bin+= "1001";break; case 'A': bin+= "1010";break; case 'B': bin+= "1011";break; case 'C': bin+= "1100";break; case 'D': bin+= "1101";break; case 'E': bin+= "1110";break; case 'F': bin+= "1111";break; } } string crc="1000000100001"; string message=bin; int l=message.length(); int cl=crc.length(); int ii=0; int k=0; l=message.length(); while(true) { if(ii>l-cl) break; for(int j=0;j