- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
考虑以下问题。您有一个位串,表示单热编码中的当前预定从站。例如,“00000100”(最左边的位是#7,最右边的位是#0)表示从机#2 已被调度。
现在,我想在循环调度方案中选择下一个预定的从站,但要稍作改动。我有一个“请求掩码”,它说明了哪些奴隶实际上想要被安排。下一个奴隶只会从那些想要的人中挑选出来。
一些示例(假设循环调度是通过向左旋转来完成的)。示例 1:
例子2:
现在,这可以很容易地在循环中编码,我知道。但我实际上想通过一个没有循环的位操作来获得我的结果。动机:我想在 VHDL/Verilog 的硬件中(在 FPGA 中)实现它。
奖励是组成一个算法,该算法对任何数量的奴隶 N 都是通用的。
顺便说一下,这不是一道作业题。每当想要以某种方式调度从站并根据从站的请求来调节调度时,这都是一个重要的问题。我目前的解决方案有点“沉重”,我想知道我是否遗漏了一些明显的东西。
最佳答案
循环不一定是坏的。
我只会做
current[i] = current[i-1] & mask[i] | // normal shift logic
mask[i] & current[i-2] & !mask[i-1] | // here build logic
... // expression for
// remaining
然后将其放入生成循环(即它将展开到硬件中),这将为表达式生成并行硬件。
此处提到的其他解决方案使用多个“-”。我只能劝阻他们,因为这会给你带来非常昂贵的操作。特别是一口气你可以轻松获得超过 32 位,这在 HW 中不容易实现,因为借位必须遍历所有位(某些 fpgas 上的死进位逻辑使其可以用于少量位)。
关于algorithm - 通过 bit twiddling 在循环调度中找到下一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/480405/
我正在努力弄清楚如何在参数优化方法上设置界限(最小/最大)。 Twiddle是优化算法:https://www.youtube.com/watch?v=2uQ2BSzDvXs .我怎样才能确保 p(参
我的 twiddle 有问题Solaris 10 服务器上的脚本。 我必须阅读一些属性,例如 jboss.system和别的。 取决于 jboss 服务器的所有属性都很好,但是当我尝试时 从 java
所以我在 C 中摆弄 Bit-Twiddling,我遇到了一个有趣的输出: int main() { int a = 0x00FF00FF; int b = 0xFFFF0000;
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
想知道是否有人对我如何对二进制数执行以下操作有一些了解: 转换 01+0 -> 10+1 (+ as in regular expressions, one or more) 01 ->
我喜欢看到人们编写 Bit Twiddling 代码,但我根本无法理解它。经历了黑客的喜悦和http://graphics.stanford.edu/~seander/bithacks.html ,但
假设我们有一个 8 字节的 ulong。对于每个字节,我们想知道它是零还是非零。期望的结果是一个字节,其 8 位表示原始 8 个字节的“非零”。 是否有这个操作或一组操作的名称? 我们如何才能非常有效
摘要 您好,假设您有两个不同的独立 64 位二进制矩阵 A 和 T(T 是另一个存储在转置矩阵中的矩阵形式,使用矩阵的转置版本允许在乘法期间对 T 的行而不是列进行操作,这对于二进制算术来说非常酷)并
考虑以下问题。您有一个位串,表示单热编码中的当前预定从站。例如,“00000100”(最左边的位是#7,最右边的位是#0)表示从机#2 已被调度。 现在,我想在循环调度方案中选择下一个预定的从站,但要
我问是否有可能显着改进整数矩阵乘法 bitwise operations .矩阵很小,元素是小的非负整数(小意味着最多 20)。 为了让我们集中注意力,让我们非常具体,假设我有两个 3x3 矩阵,整数
我需要制作一个不涉及循环(仅位操作)并且不使用大常量的字中的位计数例程。 int x = 0xFFFFFFFF; x += (~((x >> 1) & 0x55555555)+1); x = (((x
我想在 ember-twiddle 上创建一个演示.但我不能使用它的一些插件,特别是 ember-moment添加在。 如何使用 ember-moment 创建演示添加在? 最佳答案 在 twiddl
代码如下: unsigned int v; // word value to compute the parity of v ^= v >> 16; v ^= v >> 8; v ^= v >> 4
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
感谢 Bit twiddling: which bit is set? 上的一些非常有帮助的 stackOverflow 用户,我已经构建了我的函数(发布在问题的末尾)。 任何建议——即使是很小的建议
我有一个位计数方法,我正试图尽快完成。我想从 Bit Twiddling Hacks 尝试下面的算法,但我不知道 C。什么是“类型 T”以及 (T)~(T)0/3 的 python 等价物是什么? A
我正在编写一个计算参数 x 的 2 倍的函数,但如果它溢出,它应该返回最大的正数或负数。问题是我只能使用 ! ~ & ^ | + > .涉及 32 位整数。 这是我目前所拥有的: int bounde
我见过在 ruby 的 gem 文件 (documentation) 中使用的 twiddle-wakka 运算符 (~>) 来指定兼容的最后一 pip 版本,如下所示: '~> 0.3.1' i
我是一名优秀的程序员,十分优秀!