【luogu题解】T378828 位运算
位运算题目背景
题目由 daiyulong20120222 创作(me)
并由
QBW1117完善以及数据 。
题目描述
给定两个数\(x,y\) ,在给定一个位运算符号 \(c\)。
请你列出 \(x,y\) 进行 \(c\) 位运算是的算数竖式式。
注:
[*]竖式这么列:
[*]显示出两个数的完整二进制,包括前导零。
[*]32个 '-'。
[*]显示出 \(ans\) ,包括前导零。
[*]位运算符号可能是:
[*]&
[*]|
[*]^
输入格式
三个整数\(x,y,c\)同题意
输出格式
竖式结果
样例 #1
样例输入 #1
32 21 &样例输出 #1
00000000000000000000000000100000
00000000000000000000000000010101
--------------------------------
00000000000000000000000000000000题解
做这道题有3种方法。
方法一:进制转换(字符串)
这种方法在此不做过多的赘述,有兴趣的同学可以翻看一些luogu进制转换的题解。
不过真的是太简单啦!
方法二:位运算&状态压缩
这种方法也在此不做过多的赘述。
不过也真的是太简单啦!
·····方法三:bitset库函数
在C++中:有一个库函数 bitset
头文件:#include
详见请查看此链接
AC code
#include #include using namespace std;string performBitOperation(int x, int y, char op) { bitset binaryX(x); bitset binaryY(y); bitset result; switch (op) { case '&': result = binaryX & binaryY; break; case '|': result = binaryX | binaryY; break; case '^': result = binaryX ^ binaryY; break; default: coutx >> y >> op; string result = performBitOperation(x, y, op); cout
页:
[1]