こんにちは、ビット (ビット リテラル) を含む (malloc() で割り当てられた) メモリのチャンクがあります。それを char の配列として読み取りたい、または 8 の ASCII 値を出力したいです。メモリの連続ビット。
メモリをchar *として割り当てましたが、ループで各ビットを評価し、値をcharに追加してcharの値を左にシフトするよりも良い方法で文字を取り出すことができませんでしたが、より迅速な解決策を探していました。ありがとうございました
私が今書いたのはこれです:
割り当て用:
char * bits = (char*) malloc(1);
me への書き込み用:
ifstream cleartext;
cleartext.open(sometext);
while(cleartext.good())
{
c = cleartext.get();
for(int j = 0; j < 8; j++)
{ //set(index) and reset(index) set or reset the bit at bits[i]
(c & 0x80) ? (set(index)):(reset(index));//(*ptr++ = '1'):(*ptr++='0');
c = c << 1;
}..
}..
そして今まで私は文字を取り戻すことができませんでした.私はビットを印刷するだけです:
printf("%s\n" bits);
私がやろうとしていることの例は次のとおりです。
input.txt には文字列「AAAB」が含まれています
私のプログラムは、「AAAB」を「01000001010000010100000101000010」としてメモリに書き込む必要があります(ビットで65656566であるAAABのビットでのASCII値です)
では、メモリの内容をファイルに書き換える機能があればいいのですが。
したがって、メモリに再び「01000001010000010100000101000010」が含まれている場合、出力ファイル「AAAB」に書き込まれます。