6週目-ビット演算
2858 ワード
関数の欠落した部分を書き出して、関数の戻り値がi番目とm番目のi番目が同じで、他のビットとnが同じである整数になります.
【1行コード】bitManipulation 1関数を補完してプログラムが上記の機能を達成できるようにしてください
入力
最初の行は整数tであり、テストグループ数を表す.各テストデータのセットは、3つの整数n,m,i(0<=i<=31)の行を含む.
しゅつりょく
入力データのセット毎に、整数変数nが変化した結果を行毎に出力する
サンプル入力
サンプル出力
コード:
#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){//12 1は3を返す.対応バイナリ11.3の1位は1,return(((m>>i&1)<}
例題2:
//関数に欠落している部分を書き出し、関数の戻り値を整数にします.この整数のi番目のビットはnのi番目のビットが逆になります.残りのビットはnと同じ/////////【1行コード】を使用してbitManipulation 2関数を補完し、プログラムが上記の機能を達成できるように/////#include//using namespace std;/////int bitManipulation 2(int,int i){///////////int main(){//int t,n,//cin>;t;//while(t-){// cin >> n >> i;// cout << bitManipulation2(n, i) << endl;// }// return 0;//}//入力//最初の行は整数tで、テストグループ数を表します.//各テストデータのセットには、2つの整数nおよびi(0<=i<=31)の行が含まれます.//出力//出力整数変数nのi番目のビット反転の結果//サンプル入力//1//10//サンプル出力//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:
//総時間制限:1000 msメモリ制限:1024 kB//記述//関数に欠落している部分を書き出して、関数の戻り値を整数にします.この整数の左のiビットはnの左のiビットが逆になります.残りのビットはnと同じ//【1行コード】を使用してbitManipulation 3関数を補完して、プログラムが上記の機能///#include//using namespace stdに達するようにしてください/////int bitManipulation 3(int,int i){/////////int main(){//int t,n,//cin>//t;//while(t-){// cin >> n >> i;// cout << bitManipulation3(n, i) << endl;// }// return 0;//}//入力//最初の行は整数tで、テストグループ数を表します.//各テストデータのセットには、2つの整数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; }
ビット演算のまとめ
【1行コード】bitManipulation 1関数を補完してプログラムが上記の機能を達成できるようにしてください
#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であり、テストグループ数を表す.各テストデータのセットは、3つの整数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){//12 1は3を返す.対応バイナリ11.3の1位は1,return(((m>>i&1)<}
例題2:
//関数に欠落している部分を書き出し、関数の戻り値を整数にします.この整数のi番目のビットはnのi番目のビットが逆になります.残りのビットはnと同じ/////////【1行コード】を使用してbitManipulation 2関数を補完し、プログラムが上記の機能を達成できるように/////#include//using namespace std;/////int bitManipulation 2(int,int i){///////////int main(){//int t,n,//cin>;t;//while(t-){// cin >> n >> i;// cout << bitManipulation2(n, i) << endl;// }// return 0;//}//入力//最初の行は整数tで、テストグループ数を表します.//各テストデータのセットには、2つの整数nおよびi(0<=i<=31)の行が含まれます.//出力//出力整数変数nのi番目のビット反転の結果//サンプル入力//1//10//サンプル出力//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:
//総時間制限:1000 msメモリ制限:1024 kB//記述//関数に欠落している部分を書き出して、関数の戻り値を整数にします.この整数の左のiビットはnの左のiビットが逆になります.残りのビットはnと同じ//【1行コード】を使用してbitManipulation 3関数を補完して、プログラムが上記の機能///#include//using namespace stdに達するようにしてください/////int bitManipulation 3(int,int i){/////////int main(){//int t,n,//cin>//t;//while(t-){// cin >> n >> i;// cout << bitManipulation3(n, i) << endl;// }// return 0;//}//入力//最初の行は整数tで、テストグループ数を表します.//各テストデータのセットには、2つの整数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; }
ビット演算のまとめ