【问题标题】:reverse N number of bits of a Byte from given position从给定位置反转字节的 N 位数
【发布时间】:2017-02-28 01:57:28
【问题描述】:

在给定的 8 位/32 位中,从给定的高位开始,将位反转到给定的低位并保存。 例子, Reverse_specific_bits(char *data, int pos, int num_of_bits)

位置 - 5

要反转的位数 = 5

给定数据 – 01011011

结果位 - 01101101

请任何人帮我为此编写一个函数。

问候, 维涅什

【问题讨论】:

  • 欢迎来到 Stackoverflow。这不是一个编码服务网站,我们在这里帮助那些在编码时遇到技术问题的人。祝你好运!

标签: bit-manipulation bit


【解决方案1】:

最简单的方法是,

  1. 将不会更改的位的前缀修复和后修复保存在两个单独的队列中。
  2. 遍历需要反转的位并将它们推入堆栈。
  3. 获取一个新队列并推送前缀位队列,然后是堆栈,最后是后修复队列。

这是一种非常幼稚且最简单的方法。有许多有效的方法可以做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多