int long の従来の10 進形式の場合、次のようなことができます。
const long int NUMBER = 4577;
const long int DIGIT_TO_FIND = 5;
long int thisNumber = NUMBER >= 0 ? NUMBER : -NUMBER;
long int thisDigit;
while (thisNumber != 0)
{
thisDigit = thisNumber % 10;
thisNumber = thisNumber / 10;
if (thisDigit == DIGIT_TO_FIND)
{
printf("%d contains digit %d", NUMBER, DIGIT_TO_FIND);
break;
}
}
しかし、int longで表現する 2 進数または8進数はどうでしょうか。我々は持っています:
const long int NUMBER = 01011111; // octal
const long int DIGIT_TO_FIND1 = 0;
const long int DIGIT_TO_FIND2 = 1;
正しい入力:
01010101
11111111
不正な入力:
02010101 (because two)
00000009 (because nine)
int long に 0 または 1 のみが含まれているかどうかを確認する必要があります。そのための正しい入力を確認する最も簡単な方法は何ですか? 簡単な質問かもしれませんが、わかりません。ありがとうございます。