前几天我在 Verilog 中学到了一个很酷的技巧。当你需要重复做某事时。您可以使用移位寄存器来计算增量的数量。只需将 1 从 LSB 移到 MSB,当它到达 MSB 时,您就完成了。
在 C 中它会是这样的:
for(j=0b1; !(j & (1<<16)); j=j<<1)
{
/*do a thing 16 times*/
}
我知道由于位宽,它的用途有限,但它不涉及任何添加,因此速度很快。所以我的问题是:这有什么用吗?在 C 或任何其他高级语言中使用是否值得?
也许在资源有限的嵌入式系统中。
谢谢