如果我们在 int long 中有经典的十进制格式,我们可以这样做:
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中的二进制表示或八进制表示呢?我们有:
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。检查正确输入的最简单方法是什么?也许只是简单的问题,但不知道,谢谢。