Cのブロックへのバイトからの不正な出力
1590 ワード
こんにちは、例 1 のように出力されるようにコードを修正することはできません.毎回回答ありがとうございます
何が間違っているのかわかりません.多くの可能性を試しましたが、まだ何もありません.
私の出力はここにあります
私のコードはここにあります
毎度アドバイスありがとうございます
何が間違っているのかわかりません.多くの可能性を試しましたが、まだ何もありません.
int length = 4+1, cols = 3, offset = 2;
bool bytes1[4+1][8] = {
{0,1,0,0,0,0,0,1},
{0,1,1,0,1,0,0,0},
{0,1,1,0,1,1,1,1},
{0,1,1,0,1,0,1,0},
{0,0,0,0,0,0,0,0}
};
bool blocks1[offset*8][cols];
bytes_to_blocks(cols, offset, blocks1, length, bytes1);
for(int j = 0; j < offset*8; j++){
for(int i = 0; i < cols; i++){
printf("%d ", (blocks1[j][i] == true) ? 1 : 0);
}
printf("\n");
if(j % 8 == 7){
printf("\n");
}
}
// prints:
// 0 0 0
// 1 1 1
// 0 1 1
// 0 0 0
// 0 1 1
// 0 0 1
// 0 0 1
// 1 0 1
//
// 0 0 0
// 1 0 0
// 1 0 0
// 0 0 0
// 1 0 0
// 0 0 0
// 1 0 0
// 0 0 0
私の出力はここにあります
0 0 0
0 1 1
1 0 1
1 0 0
0 0 1
1 0 0
1 0 0
1 1 0
0 0 0
1 0 0
1 0 240
0 0 220
1 0 0
0 0 114
1 0 49
0 0 0
私のコードはここにあります
void bytes_to_blocks(const int cols, const int offset, bool blocks[offset*8][cols], const int rows, bool bytes[rows][8]) {
int col = 0;
int paragraph = 0;
for(int row = 0; row < rows; row++) {
col++;
if(col > cols) {
col = 0;
paragraph += 8;
}
for (int bit_index = 0; bit_index < 8; bit_index++) {
blocks[paragraph + bit_index][col] = bytes[row][bit_index];
}
}
}
毎度アドバイスありがとうございます
Reference
この問題について(Cのブロックへのバイトからの不正な出力), 我々は、より多くの情報をここで見つけました https://dev.to/tommy8699/bad-output-from-bytes-to-block-in-c-3jbcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol