检查整数是否是8的倍数

时间:2012-09-20 10:12:42

标签: c++

你好我是c ​​++的新手,所以我不确定这是不是一个非常愚蠢的问题。基本上我正在使用c ++自定义操作项目与我的MSI安装程序进行交互。我得到了一个我的用户将输入的属性,它是一个整数。我需要确保这是8的倍数,我不知道如何解决这个问题。显然,如果它可以被8除以它是一个倍数,但我不知道如果有剩余的话如何捕获。任何帮助将不胜感激,甚至指向正确的方向。感谢

5 个答案:

答案 0 :(得分:19)

使用“modulo”运算符,它给出了除法的余数:

if (n % 8 == 0) {
    // n is a multiple of 8
}

答案 1 :(得分:5)

使用“modulo”或“整数余数运算符”%

int a = ....;
if (a % 8 == 0 ) {
  // a is amultiple of 8
}

答案 2 :(得分:3)

使用operator%

if ( num % 8 == 0 )
{
    // num is multple of 8
}

答案 3 :(得分:0)

我看到有人在使用位操作

bool f( int x){
return !(x & 7);
}

据说这种方法存在一些问题,但我不太确定。

答案 4 :(得分:0)

仅检查数字的最后{​​{1}}位即可。
即使以3的形式给您提供了一个巨大的数字,而string运算没有用,您也可以检查是否只有后三位数可以被8整除,然后整数可以被{整除。 {1}}。