我正在为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)显然这并没有为我提供任何可以使用的东西,只需要看一下!有没有人对我有任何建议?
答案 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');
}
}