虽然有多种方法可以反转字节中的位顺序,但我很好奇开发人员实现的“最简单”是什么。反过来,我的意思是:
1110 -> 0111
0010 -> 0100
这类似于 此 PHP 问题,但不是重复。
这类似于 此 C 问题,但不是重复。这个问题要求开发人员实现最简单的方法。 “最佳算法”关注内存和 CPU 性能。
原文由 nathan 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然有多种方法可以反转字节中的位顺序,但我很好奇开发人员实现的“最简单”是什么。反过来,我的意思是:
1110 -> 0111
0010 -> 0100
这类似于 此 PHP 问题,但不是重复。
这类似于 此 C 问题,但不是重复。这个问题要求开发人员实现最简单的方法。 “最佳算法”关注内存和 CPU 性能。
原文由 nathan 发布,翻译遵循 CC BY-SA 4.0 许可协议
作为开发人员,这是我最容易记住的方法:
unsigned char reverse_bits(unsigned char octet)
{
return (((octet >> 0) & 1) << 7) | \
(((octet >> 1) & 1) << 6) | \
(((octet >> 2) & 1) << 5) | \
(((octet >> 3) & 1) << 4) | \
(((octet >> 4) & 1) << 3) | \
(((octet >> 5) & 1) << 2) | \
(((octet >> 6) & 1) << 1) | \
(((octet >> 7) & 1) << 0);
}
原文由 Maurice 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答3.3k 阅读
如果您谈论的是单个字节,那么查找表可能是最好的选择,除非由于某种原因您没有 256 个字节可用。