Код:
if (a[i]==0 && a[i+1]==1 && a[i+2]==1 && a[i+3]==1 && a[i+4]==1 && a[i+5]==1 && a[i+6]==1 && a[i+7]==1)
я тут прикинул пару вариантов, посмотри, может чем то поможет.
1. банально посимвольное сравнение (даем проге символ, он сравнивается со всеми вытекающими.. ):
Код:
#include <stdio.h> #include <conio.h> int main() { int symbol=0; int bit_marker = 0x7F; // 0x01111111b printf("start: \n"); for(;;) { symbol = getch(); if(symbol==bit_marker) { printf("symbol found: %02X\n",symbol); } else { symbol=0; printf("symbol: %02X\n",symbol); } } return 0; }
Код:
#include <stdio.h> #include <conio.h> void main() { unsigned char bit,data=0,out=0; int bit_marker = 0x7F; printf("start: \n"); for(;;) { bit = getch(); if(bit==0x31 || bit ==0x30) { bit &= 0x01; data <<= 1; data &= 0xFE; data |= bit; if(data == bit_marker) { printf("\nbit_marker found!\n"); out = data; } else out = 0; printf("%02X ",out); } } }
Код:
printf("%d", a[i], " ");