位操作取余

问题:

编写程序使用位操作计算整数对8取余得到的正余数。

如29=(3×8)+5和-14=(-2×8)+2,余数分别是5和2。

代码:

#include"stdafx.h"
#include<iostream>

using std::cout;
using std::endl;
using std::cin;


int main(){
    int a, b;
    cout << "输入你要计算的数:"<<endl;
    cin >> a;
    b = a & 7;
    cout <<"余数是:"<<endl<< b<<endl;
    return 0;
}

分析:

这样算是因为8化成二进制数是00001000,每次增加一个8,也就是加一个00001000,所以前面的1都是8进位所得,也就是加8得到的,后面的是剩下的余数,所以计算得到后面的余数即可。

猜你喜欢

转载自www.cnblogs.com/dushenda/p/9651412.html