我对CRCs,boost和更多的java开发人员来说是个新手。我正在尝试使用crc.hpp boost库来创建一个仅基于两位计算的6位CRC值。首先,这可能吗?
理论上的CRC计算机似乎可以用来处理特定数量的比特,但是我不清楚如何指定6比特的结果。请帮帮忙。
发布于 2013-05-02 01:01:29
假设你的输入是基于2个实际的比特,而不是两个字节,这应该是可行的:
const int initial_remainder = 0xBAADF00D;
unsigned char input = 0x3;
boost::crc_basic<6> checksum(initial_remainder);
checksum.process_bits(input, 2);
printf("%i", checksum.checksum());不过,您仍然需要弄清楚初始余数应该是什么。
发布于 2013-05-02 02:51:55
这应该只是一个自定义代码,最大化四个字节值之间的汉明距离。它将是一个包含四个8位值的表,由这两个位作为0..3中的一个数字进行索引。
使四个值中的任何两个之间的最小汉明距离最大化的一组值(有280个这样的组)是:0x00, 0x4f, 0xb3, 0xfc。最小汉明距离为5。这些值的高两位是按顺序排列的两位索引。
https://stackoverflow.com/questions/16322554
复制相似问题