第六周-位运算

写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同。

请使用【一行代码】补全bitManipulation1函数使得程序能达到上述的功能

#include 
using namespace std;

int bitManipulation1(int n, int m, int i) {
// 在此处补充你的代码
}

int main() {
	int n, m, i, t;
	cin >> t;
	while (t--) { 
		cin >> n >> m >> i;
		cout << bitManipulation1(n, m, i) << endl;
	}
	return 0;
}

输入

第一行是整数 t,表示测试组数。
每组测试数据包含一行,是三个整数 n, m 和 i (0<=i<=31)

输出

对每组输入数据,每行输出整型变量n变化后的结果

样例输入

1
1 2 1

样例输出

3

 

 

代码:

#include
#include
#include
#include
#include

using namespace std;

int bit(int n,int m,int i);

int main()
{
    int n,m,i,t;
    cin>>t;
    
    while(t--){
        cin>>n>>m>>i;
        cout<     }
    
    return 0;
}

int bit(int n,int m,int i)
{
    //1 2 1 返回3 .对应二进制 11 .  3 的第1位为1,第 
    return (((m>>i&1)<     
}

 

 

 

例题2:

//写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位是n的第i位取反,其余位和n相同
//
//请使用【一行代码】补全bitManipulation2函数使得程序能达到上述的功能
//
//#include
//using namespace std;
//
//int bitManipulation2(int n, int i) {
//// 在此处补充你的代码
//}
//
//int main() {
//    int t, n, i;
//    cin >> t;
//    while (t--) {
//        cin >> n >> i;
//        cout << bitManipulation2(n, i) << endl;
//    }
//    return 0;
//}
//输入
//第一行是整数 t,表示测试组数。
//每组测试数据包含一行,是两个整数 n 和 i (0<=i<=31)。
//输出
//输出整型变量n中的第i位取反的结果
//样例输入
//1
//1 0
//样例输出
//0


#include
#include
#include
#include
#include

using namespace std;

int bit(int n,int i);

int main()
{
    int t,n,i;
    cin>>t;
    while(t--)
    {
        cin>>n>>i;
        cout<     }
    return 0;
}

int bit(int n,int i)
{
    return  ((1< }

 

 

例题3:

//总时间限制: 1000ms 内存限制: 1024kB
//描述
//写出函数中缺失的部分,使得函数返回值为一个整数,该整数的左边i位是n的左边i位取反,其余位和n相同
//请使用【一行代码】补全bitManipulation3函数使得程序能达到上述的功能
//
//#include
//using namespace std;
//
//int bitManipulation3(int n, int i) {
//// 在此处补充你的代码
//}
//
//int main() {
//    int t, n, i;
//    cin >> t;
//    while (t--) {
//        cin >> n >> i;
//        cout << bitManipulation3(n, i) << endl;
//    }
//    return 0;
//}
//输入
//第一行是整数 t,表示测试组数。
//每组测试数据包含一行,是两个整数 n 和 i (1<=i<=32)。
//输出
//对每组输入数据,输出整型变量n中左边i位取反的结果。
//样例输入
//1
//0 32
//样例输出
//-1


#include
using namespace std;

int bitManipulation3(int n, int i) {
return n^-1 << (32 - i);
}

int main() {
    int t, n, i;
    cin >> t;
    while (t--) {
        cin >> n >> i;
        cout << bitManipulation3(n, i) << endl;
    }
    return 0;
}
 

 

 

位运算总结

你可能感兴趣的:(C++学习)