先日、Verilogでクールなトリックを学びました。繰り返し何かをする必要があるとき。シフトレジスタを使用して、インクリメントの数をカウントできます。1をLSBからMSBにシフトするだけで、MSBに到達したら完了です。
Cでは、次のようになります。
for(j=0b1; !(j & (1<<16)); j=j<<1)
{
/*do a thing 16 times*/
}
ビット幅の関係で使用が制限されていることは知っていますが、追加が必要ないため高速です。だから私の質問:これの使用法はありますか?Cまたは他の高級言語で使用する価値はありますか?
たぶん、リソースが限られている組み込みシステムで。
ありがとう