编辑代码

#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=crc>>29;
    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;
}