Bailian3718 位操作练习【位运算】
位操作练习
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形式经过循环左移若干位而得到。
循环左移和普通左移的区别在于:最左边的那一位经过循环左移一位后就会被移到最右边去。比如:
1011 0000 0000 0001 经过循环左移一位后,变成 0110 0000 0000 0011, 若是循环左移2位,则变成 1100 0000 0000 0110 - 输入
-
第一行是个整数n, 0 < n < 300000,表示后面还有n行数据
后面是n行,每行有两个不大于65535的非负整数 - 输出
- 对于每一行的两个整数,输出一行,内容为YES或NO
- 样例输入
-
4 2 4 9 18 45057 49158 7 12
- 样例输出
-
YES YES YES NO
问题链接:Bailian3718 位操作练习
问题分析:这是一个位运算的问题。
程序说明:无符号短整数的输入格式是"%hd",头一次使用。16位整数的类型是short int,这个问题使用无符号的16位整数最为合适。循环左移i位,相当于左移i位与右移16-i位的或,这是关键。
题记:编写底层程序时,位运算是常用的。
AC的C语言程序如下:
/* Bailian3718 位操作练习 */#include <stdio.h>#define N 16int main(void)
{int n, flag, i;unsigned short int a, b, a1, a2;scanf("%d", &n);while(n--) {scanf("%hd%hd", &a, &b);flag = 0;if(a == b)flag = 1;elsefor(i=1; i<N; i++) {a1 = a << i;a2 = a >> (N - i);if((a1 | a2) == b) {flag = 1;break;}}printf("%s\n", flag == 1 ? "YES" : "NO");}return 0;
}
Bailian3718 位操作练习【位运算】相关推荐
- NUC1419 位操作【位运算+STL】
位操作 时间限制: 8000ms 内存限制: 65535KB 通过次数: 2总提交次数: 2 问题描述 假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位 ...
- kotlin位操作和位运算
一.位操作: shl(bits) – 左移位 (Java's <<) shr(bits) – 右移位 (Java's >>) ushr(bits) – 无符号右移位 (Java ...
- POJ3748 位操作【位运算+STL】
位操作 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9433 Accepted: 3796 Description 假 ...
- C/C++位操作、位运算
在C语言中,可以单独操控变量的位(bit),一般高级语言不会处理这级别的细节,C在提供高级语言便利的同时,还能为汇编语言所保留的级别上工作,这使其成为编写设备驱动程序和嵌入式代码的首选语言. 目录 二 ...
- 【Java位运算】n1和n>>1含义
相关文章,配合食用: Java中去除整数二进制的最后一个1(位操作) 位运算是执行效率非常高的运算,刷题中,有时候使用会有奇效.但位运算还是不太好理解的,这里记录两个常用的位运算. n&1 n ...
- c语言结构体的位操作,C语言之路---结构体、位运算及预处理命令
一.结构体 1).概念 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member). 结构体也是一种数据类型,它由程序员自己定 ...
- python中不同进制的整数之间可以直接运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- 位运算详解+竞赛常见用法总结
目录 一.位运算详解 二.位运算应用 1.快速幂 2.给定一个数组A, 长度为n,求下面这段程序的值 3.数数字 4.数数字 2 5.nim博弈问题: 6.树状数组 7.判断一个数x是不是2的某次方 ...
- java double 位运算_JAVA位运算等运算符总结
JAVA位运算等运算符总结 一.概述 运算符是一种"功能"符号,用以通知 Java 进行相关的运算. Java 语言中常用的运算符可分为如下几种:算术运算符 赋值运算符 比较运算符 ...
最新文章
- Android内存泄漏简介
- JVM 学习笔记 1. JVM 运行模型
- Linux系统TCP内核参数优化总结
- linux设置python3为默认python_Ubuntu 18.04将Python3设置为Python默认版本
- 苹果推送watchOS 5.3.2更新:用户无需升级至iOS13也可使用
- 重定向与请求转发的区别
- TZOJ 数据结构期末历年题目
- 输入多个数,中间用空格隔开
- 书籍推荐——Python绝技:运用Python成为顶级黑客
- HOTMAIL搭建企业邮箱
- 编译问题追踪 :高通驱动移植 <utils/Log.h>问题
- 协通xt800 anydesk teamview 密码获取
- 使用163邮箱发送邮件、HTML、附件、图片
- 【数据库】mysql、oracle、sqlserver按照字典顺序
- Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
- 原生Js导出Excel文件
- JQuery Marquee插件(无缝滚动效果)- marquee.js
- GitHub也能CI/CD了 如何使用GitHub的Action?
- android 4.0 安全模式分析
- Oracle BEGIN END 【整理】
热门文章
- Netty的使用:Server和Client通信
- 深入浅出聊Unity3D优化:从Draw Calls到GC
- 【转载】RPG模式研究——即时制与回合制战斗对比
- 可扩展多线程异步Socket服务器框架EMTASS 2.0
- 使用iframe实现在pc端预览移动端页面的效果
- PVE虚拟服务器配置,我与PVE的交往史 篇一:如何使用虚拟机PVE一步一步打造自己想要的ALL IN ONE 主机...
- mysql 变量定义和赋值_MySQL变量解析
- python搜索关键词自动提交_简单爬虫:调用百度接口,实现关键词搜索(python_003)...
- 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数
- Hbase对应的Hadoop兼容版本