#include "stdint.h"
#include "stdio.h"
#include "string.h"
void Print_Binary(unsigned int x) {
if (x > 1) {
Print_Binary(x >> 1);
}
putchar((x & 1) ? '1' : '0');
}
uint32_t CRC3(uint32_t data)
{
uint32_t poly = 0xb0000000;
uint32_t crc;
crc = data;
for (int i = 0; i < 29; i++)
{
if (crc & 0x80000000)
{
crc = crc^poly;
crc = crc << 1;
}
else
{
crc = crc << 1;
}
}
crc=(data<<3)+(crc>>29);
return crc;
}
int main()
{
uint32_t data = 0xf0025555;
uint32_t crc_buf=0;
crc_buf=CRC3(data);
printf("crc=%x\n", crc_buf );
Print_Binary(crc_buf );
printf("\n");
return 0;
}