在Arduino草图中将文本字符串转换为二进制ASCII

时间:2013-03-20 04:28:37

标签: binary arduino ascii

我正在为Arduino编写草图,旨在将文本字符串转换为二进制7位或8位ASCII。例如,“Hello World”将成为此8位ASCII二进制流:

0100100001100101011011000110110001101111001000000111011101101111011100100110110001100100

正如您所看到的,这是标准的7位ASCII填充零,使其成为8位ASCII。我不介意我使用哪个比特长度,只要它一旦我开始就一致。我花了几个小时试图找出一种无法实现的方法。我最接近的是这样的:

char text[] = "Hello world";

当像这样打印到显示器上时:

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

给我1001000.但是,这根本没有填充(所以“0”只是0,而不是0000000)显然这并没有为我提供任何可以使用的东西,只需要看一下!有没有人对我有任何建议?

1 个答案:

答案 0 :(得分:0)

您可以将此作为起点:

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');
  }
}