テキストファイルを他の2つのファイルに少しずつ分割するにはどうすればよいですか. ファイル A のすべての偶数ビットと、B のすべての奇数ビットが必要です。つまり、ファイル X が次の場合:
0101010111110000
この場合、ファイル A は 00001100、B は 11111100 になります。
次に、それらを .txt ファイルとして保存する必要があります。その後、再び X を取得するためにそれらをマージする必要があります。
cを使用しています。私がこれまでに持っているコードは次のとおりです。
#include <stdio.h>
void printchar( unsigned char to_print )
{
unsigned char mask = 0x80;
for( int i = 0; i < 8; ++i )
{
if( (mask & to_print) > 0 )
{
printf( "%d", 1 );
}
else
{
printf( "%d", 0 );
}
mask = mask >> 1;
}
printf( "\n" );
}
void split( unsigned char * left, unsigned char * right, unsigned char input1, unsigned char input2 )
{
unsigned char mask = 0x80;
for( int i = 0; i < 4; ++i )
{
(*left) |= ( (input1 & mask) << i );
(*left) |= ( (input2 & mask) >> (4-i) );
mask = mask >> 1;
(*right) |= ( (input1 & mask) << (i+1) );
(*right) |= ( (input2 & mask) >> (3-i) );
mask = mask >> 1;
}
}
int main (int argc, const char * argv[])
{
unsigned char left = 0;
unsigned char right = 0;
unsigned char input1 = 0xA6;
unsigned char input2 = 0xB5;
split( &left, &right, input1, input2 );
printchar( left );
printchar( right );
return 0;
}