Доступ к битам без знака, чтобы определить, состоят ли символы из 1 и 0 - PullRequest
0 голосов
/ 07 февраля 2012

Эй, мне нужна небольшая помощь в доступе к битам без знака. Мне нужно проверить, чтобы убедиться, что "канал", который является беззнаковым символом (UCHAR), имеет длину 6 цифр (у меня есть это), и что вводимое число является действительным двоичным числом (иначе говоря, 1 с или 0 с). Я в растерянности, как получить к нему доступ. Любая помощь будет отличной!

void binEnter(void *channel){
int i;
for (i=0; i<6; i++) {
redo:
    printf("Enter binary value for Channel %d: ",i);
    scanf("%s",(UCHAR *)channel);
    if (strlen(channel)!=6) {
        printf("Error entry must be six digits!\n");
        goto redo;
    }
}
}

1 Ответ

0 голосов
/ 07 февраля 2012

Выполните цикл для проверки каждой цифры.

char *string = channel;
for (j = 0; j < 6; j++)
{
  if ((string[j] != '0') && (string[j] != '1'))
  {
    // error
  }
}

Вы также можете просто использовать strtol(3) и проверить результат в endptr, чтобы увидеть, получили ли выцифра.

...