检查整数是否是 8 的倍数
Check if integer is multiple of 8
嗨,我是 c++ 的新手,所以我不确定这是否是一个非常愚蠢的问题。基本上,我正在使用c ++自定义操作项目与我的MSI安装程序进行交互。我得到一个我的用户将输入的属性,它是一个整数。我需要确保这是 8 的倍数,我不确定该怎么做。显然,如果它可以除以 8,那就是倍数,但我不确定如何捕获是否有余数。任何帮助将不胜感激,甚至为我指出正确的方向。谢谢
使用 "modulo" 运算符,它给出除法的余数:
if (n % 8 == 0) {
// n is a multiple of 8
}
使用"modulo"或"integer 余数运算符"%
:
int a = ....;
if (a % 8 == 0 ) {
// a is amultiple of 8
}
使用运算符 %
if ( num % 8 == 0 )
{
// num is multple of 8
}
只检查数字的最后 3
位就可以完成这项工作.
即使您以string
的形式获得一个巨大的数字,其中%
操作没有用,您也可以检查是否只有最后 3 位数字可以被 8 整除,那么整数可以被 8
整除。
对于无符号整数,对于 8 的倍数,三个最低有效位始终为零,因此这些位上的按位 & 应该是假的。对于有符号(二进制补码),仅当整数为正数时才如此,因此请注意您的输入是否存储为有符号(是否要接受负数作为输入)。另请注意,三个最低有效位本身为零,因此请考虑您是否希望在有人输入零时检查为真。从您的问题来看,您的代码似乎不必优化,因此只需使用模数即可。
我看到有人在使用位操作
bool f( int x){
return !(x & 7);
}
有人说这种方法有一些问题,但我不太确定。
相关文章:
- C++LDAP检查用户是否是特定组的成员
- 检查某些类型是否是模板类 std::optional 的实例化
- 将错误返回给调用方而不是立即在 C++ 中抛出错误是否是一种好的做法
- 如何检查模板专用化是否是基本模板的子类?
- 如何检查变量是否是C++中的地图?
- C++ Chrono 确定一天是否是周末?
- C++字符串大小减去整数不是预期值,为什么?
- 将相同共享指针的副本存储在不同的向量中是否是一种好的做法?
- 使用类在C++中存储和列出变量/方法是否是一种好的做法
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 如何使用条件来检查类型名 T 是否是 C++ 中浮点类型的整数类型
- 我们如何找到 N sqrt(m) 并检查答案是否是 C++ 中的整数
- 确定平方根是否是整数
- 检查整数是否是 8 的倍数
- 如何检查输入是否是没有任何其他字符的有效整数
- 有没有办法检查一个变量是否是一个整数?C++
- 检查string是否是有效的整数或小数(正负两种情况)
- 如何在不使用平方根的情况下检查一个整数是否是完全平方数
- 如何检查输入的数字是否为整数不是浮点数
- 在c++中有没有更快的方法来检验一个数是否是2的整数次幂?