命令パイプライン シミュレータを構築しようとしていますが、開始するのに多くの問題があります。私がする必要があるのは、標準入力からバイナリを読み取り、データを操作している間、何らかの方法でメモリに格納することです。正確に 32 ビットのチャンクを次々と読み取る必要があります。
一度に正確に 32 ビットのチャンクを読み取るにはどうすればよいですか? 第二に、後で操作するためにどのように保存しますか?
これが私がこれまでに得たものですが、さらに読んだバイナリチャンクを調べると、正しく見えません.必要な32ビットを正確に読んでいるとは思いません.
char buffer[4] = { 0 }; // initialize to 0
unsigned long c = 0;
int bytesize = 4; // read in 32 bits
while (fgets(buffer, bytesize, stdin)) {
memcpy(&c, buffer, bytesize); // copy the data to a more usable structure for bit manipulation later
// more stuff
buffer[0] = 0; buffer[1] = 0; buffer[2] = 0; buffer[3] = 0; // set to zero before next loop
}
fclose(stdin);
一度に 32 ビット (すべて 1/0、改行なしなど) を読み取るにはどうすればよいchar[]
ですか?
編集:バイナリを読み取ることはできますが、正しい順序でビットを生成する答えはありません-それらはすべて混乱しており、エンディアンと、一度に8ビット(1文字)を読み取って移動する際の問題が疑われます-これWindows と C で動作する必要があります ... ?