1

テキスト文字列をバイナリ7ビットまたは8ビットASCIIに変換することを目的としたArduino用のスケッチを書いています。たとえば、「He​​llo World」は次の 8 ビット ASCII バイナリ ストリームになります。

0100100001100101011011000110110001101111001000000111011101101111011100100110110001100100

ご覧のとおり、これは 8 ビット ASCII にするためにゼロが埋め込まれた標準の 7 ビット ASCII です。一度始めたら一貫している限り、使用するビット長は気にしません。私はそれを達成する方法を見つけようとして数時間を費やしましたが、役に立ちませんでした。私が持っている最も近いものは次のようなものです:

char text[] = "Hello world";

次のようにモニターに出力すると、次のようになります。

Serial.println(text[0], BIN);

私に1001000を与えます。ただし、これはまったくパディングされていません(したがって、「0」は単に0であり、0000000ではありません)。誰か私にアドバイスはありますか?

4

1 に答える 1

1

これを出発点として使用できます。

char inputChar = 'H';

// This will 'output' the binary representation of 'inputChar' as 8 characters of '1's and '0's, MSB first.
for ( uint8_t bitMask = 128; bitMask != 0; bitMask = bitMask >> 1 ) {
  if ( inputChar & bitMask ) {
    output('1');
  } else {
    output('0');
  }
}
于 2013-03-20T17:52:22.680 に答える