0

私が正しく理解していれば、レジスタファイルは整数の配列です。だから私は最初にレジスタ$a0をバイナリに変換する必要がありますよね?それが終わったら、どのようにして個々のビットにアクセスしますか?マスクを使用する必要があるかもしれませんが、ORまたはANDを実行した後、レジスタの個々の要素にアクセスする方法を考えることができません。

ありがとうございました

4

1 に答える 1

2

「整数をバイナリに変換」しません。整数はレジスタにビットとして格納されます。Binary は、整数のテキスト表現です。

AND を使用してレジスタの個々のビットをマスクし、その結果がゼロでないかどうかをテストします。

// Assuming 32-bit registers
int reg = .... // Your register...
int count = 0;
for (int i=0; i<32; i++) {
    uint32_t mask = 1<<i;
    if (reg & mask)
        count++;
}
于 2012-11-26T04:50:46.773 に答える