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

Binary 在Arduino草图中将文本字符串转换为二进制ASCII,binary,arduino,ascii,Binary,Arduino,Ascii,我正在为Arduino编写一个草图,旨在将文本字符串转换为二进制7位或8位ASCII。例如,“Hello World”将成为此8位ASCII二进制流: 0100100001100101011010110011000111110010000001110111011101111111011100100110110001100100 正如您所看到的,这是标准的7位ASCII加上零,使其成为8位ASCII。我不介意使用哪一位长度,只要它在我开始使用后是一致的。我花了几个小时试图找出一种方法来实现这一点,

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

0100100001100101011010110011000111110010000001110111011101111111011100100110110001100100

正如您所看到的,这是标准的7位ASCII加上零,使其成为8位ASCII。我不介意使用哪一位长度,只要它在我开始使用后是一致的。我花了几个小时试图找出一种方法来实现这一点,但没有结果。最接近我的是这样的:

char text[] = "Hello world";
Serial.println(text[0], BIN);
当打印到监视器上时,如下所示:

char text[] = "Hello world";
Serial.println(text[0], BIN);

给我1001000。然而,这根本不是填充的(所以“0”将只是0,而不是0000000),显然这并没有为我提供任何可以使用的东西,只是一些可以查看的东西!有人对我有什么建议吗?

你可以以此为出发点:

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

您可以将此作为起点:

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