【题解】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<bitset>
详见请查看此链接
AC code
#include <iostream>
#include <bitset>
using namespace std;
string performBitOperation(int x, int y, char op) {
bitset<32> binaryX(x);
bitset<32> binaryY(y);
bitset<32> result;
switch (op) {
case '&':
result = binaryX & binaryY;
break;
case '|':
result = binaryX | binaryY;
break;
case '^':
result = binaryX ^ binaryY;
break;
default:
cout << "Invalid operator!" << endl;
return "";
}
string binaryXStr = binaryX.to_string();
string binaryYStr = binaryY.to_string();
string resultStr = result.to_string();
string separator(32, '-');
string output = binaryXStr + "\n" + binaryYStr + "\n" + separator + "\n" + resultStr;
return output;
}
int main() {
int x, y;
char op;
cin >> x >> y >> op;
string result = performBitOperation(x, y, op);
cout << result << endl;
return 0;
}
【题解】T378828 位运算的更多相关文章
- FJUT寒假作业第二周C题解(位运算)
题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=161#P2 题意比较好理解.如果直接按题目要求一步一解.一定超时.作为一个懒人也不会这么暴力一个肯 ...
- Codeforces Round #672 (Div. 2) B. Rock and Lever题解(思维+位运算)
题目链接 题目大意 给你一个长为n(n<=1e5)的数组,让你求有多少对a[i]和a[j] (i!=j)满足a[i]&a[j]>a[i]^a[j] 题目思路 这些有关位运算的题目肯 ...
- 【洛谷P2114】起床困难综合征 位运算+贪心
题目大意:给定 N 个操作,每个操作为按位与.或.异或一个固定的数字,现在要求从 0 到 M 中任选一个数字,使得依次经过 N 个操作后的值最大. 题解:位运算有一个重要的性质是:位运算时,无进位产生 ...
- 【LeetCode】位运算 bit manipulation(共32题)
[78]Subsets 给了一个 distinct 的数组,返回它所有的子集. Example: Input: nums = [,,] Output: [ [], [], [], [,,], [,], ...
- upc组队赛16 Winner Winner【位运算】
Winner Winner 题目链接 题目描述 The FZU Code Carnival is a programming competetion hosted by the ACM-ICPC Tr ...
- 牛客小白月赛28 D.位运算之谜 (位运算)
题意:给你两个正整数\(x\)和\(y\),求两个正整数\(a\),\(b\),使得\(a+b=x\),\(a\)&\(b\)=\(y\),如果\(a\),\(b\),输出\(a\ xor \ ...
- C语言位运算题解
#include <stdio.h> #include <stdlib.h> #include <string.h> //#define NONBLANK 1 ma ...
- 位运算基础(Uva 1590,Uva 509题解)
逻辑运算 规则 符号 与 只有1 and 1 = 1,其他均为0 & 或 只有0 or 0 = 0,其他均为1 | 非 也就是取反 ~ 异或 相异为1相同为0 ^ 同或 相同为1相异为0,c中 ...
- BZOJ-3668 起床困难综合症 位运算+贪心
faebdc学长杂题选讲中的题目...还是蛮简单的...位运算写的不熟练... 3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 ...
- 位运算 ZOJ 3870 Team Formation
题目传送门 /* 题意:找出符合 A^B > max (A, B) 的组数: 位运算:异或的性质,1^1=0, 1^0=1, 0^1=1, 0^0=0:与的性质:1^1=1, 1^0=0, 0^ ...
随机推荐
- ios-class-guard - iOS代码混淆与加固实践
目录 ios-class-guard - iOS代码混淆与加固实践 摘要 引言 一.class-dump 二.ios-class-guard 混淆原理 三.ios-class-guard 混淆结果 ...
- freeswitch的mod_xml_curl模块动态获取dialplan
概述 freeswitch是一款简单好用的VOIP开源软交换平台. mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取dialplan配置. 环境 centos:Cent ...
- Visual Studio2019 使用WCF服务
什么是WCF Windows Communication Foundation (WCF) 是一个框架,用于生成面向服务的应用程序.它取代了较旧的进程间通信技术,例如 ASMX Web 服务..NET ...
- Ceph学习笔记(1)- 架构概述
简介 Ceph的目标是采用商业硬件来构建大规模的.具有高可用.高扩展.高性能的分布式存储系统,ceph具有如下特点: 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系 ...
- java进阶(25)--泛型
一.泛型基本概念 JDK5.0后新特性:Generic 1.不使用泛型举例
- go 接口学习笔记
这里是对接口在汇编层面上转换和实现的小结,详细了解可参考 Go 语言接口的原理 1. 类型转换:结构体到接口 1.1 结构体方法实现接口 package main type Duck interfac ...
- Visual Studio实用的搜索、查找、替换技巧
前言 对于.NET开发者而言Visual Studio是我们日常工作中比较常用的开发工具,掌握一些Visual Studio实用的搜索.查找.替换技巧可以帮助我们大大提高工作效率从而避免996. Vi ...
- 问题--VSCODE编写C含scanf无终端跳出
1.问题 在VSCODE中编写C程序,用到scanf输入时,发现无终端输入数据 2.解决方法 在设置里搜索RunInTerminal,勾选该选项即可
- C++ 关键字 new
new new 是C++ 中的关键字,有两个含义 new 表达式 作为运算符的函数名,也就是 operator new new 表达式 提供一个特定的内存分配格式,返回在存储空间上构造的对象或对象数组 ...
- [转帖]聊聊字符串数据长度和nls_length_semantics参数
字符串是我们设计数据库经常用到的类型,从传统的ASCII格式到UTF-8格式,不同应用需求对应不同的字符类型和长度配置.针对Oracle而言,最常用的类型无外乎char和varchar2两个基本类型. ...