位操作练习

总时间限制:
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 位操作练习【位运算】相关推荐

  1. NUC1419 位操作【位运算+STL】

    位操作 时间限制: 8000ms 内存限制: 65535KB 通过次数: 2总提交次数: 2 问题描述 假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位 ...

  2. kotlin位操作和位运算

    一.位操作: shl(bits) – 左移位 (Java's <<) shr(bits) – 右移位 (Java's >>) ushr(bits) – 无符号右移位 (Java ...

  3. POJ3748 位操作【位运算+STL】

    位操作 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9433   Accepted: 3796 Description 假 ...

  4. C/C++位操作、位运算

    在C语言中,可以单独操控变量的位(bit),一般高级语言不会处理这级别的细节,C在提供高级语言便利的同时,还能为汇编语言所保留的级别上工作,这使其成为编写设备驱动程序和嵌入式代码的首选语言. 目录 二 ...

  5. 【Java位运算】n1和n>>1含义

    相关文章,配合食用: Java中去除整数二进制的最后一个1(位操作) 位运算是执行效率非常高的运算,刷题中,有时候使用会有奇效.但位运算还是不太好理解的,这里记录两个常用的位运算. n&1 n ...

  6. c语言结构体的位操作,C语言之路---结构体、位运算及预处理命令

    一.结构体 1).概念 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member). 结构体也是一种数据类型,它由程序员自己定 ...

  7. python中不同进制的整数之间可以直接运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  8. 位运算详解+竞赛常见用法总结

    目录 一.位运算详解 二.位运算应用 1.快速幂 2.给定一个数组A, 长度为n,求下面这段程序的值 3.数数字 4.数数字 2 5.nim博弈问题: 6.树状数组 7.判断一个数x是不是2的某次方 ...

  9. java double 位运算_JAVA位运算等运算符总结

    JAVA位运算等运算符总结 一.概述 运算符是一种"功能"符号,用以通知 Java 进行相关的运算. Java 语言中常用的运算符可分为如下几种:算术运算符 赋值运算符 比较运算符 ...

最新文章

  1. Android内存泄漏简介
  2. JVM 学习笔记 1. JVM 运行模型
  3. Linux系统TCP内核参数优化总结
  4. linux设置python3为默认python_Ubuntu 18.04将Python3设置为Python默认版本
  5. 苹果推送watchOS 5.3.2更新:用户无需升级至iOS13也可使用
  6. 重定向与请求转发的区别
  7. TZOJ 数据结构期末历年题目
  8. 输入多个数,中间用空格隔开
  9. 书籍推荐——Python绝技:运用Python成为顶级黑客
  10. HOTMAIL搭建企业邮箱
  11. 编译问题追踪 :高通驱动移植 <utils/Log.h>问题
  12. 协通xt800 anydesk teamview 密码获取
  13. 使用163邮箱发送邮件、HTML、附件、图片
  14. 【数据库】mysql、oracle、sqlserver按照字典顺序
  15. Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
  16. 原生Js导出Excel文件
  17. JQuery Marquee插件(无缝滚动效果)- marquee.js
  18. GitHub也能CI/CD了 如何使用GitHub的Action?
  19. android 4.0 安全模式分析
  20. Oracle BEGIN END 【整理】

热门文章

  1. Netty的使用:Server和Client通信
  2. 深入浅出聊Unity3D优化:从Draw Calls到GC
  3. 【转载】RPG模式研究——即时制与回合制战斗对比
  4. 可扩展多线程异步Socket服务器框架EMTASS 2.0
  5. 使用iframe实现在pc端预览移动端页面的效果
  6. PVE虚拟服务器配置,我与PVE的交往史 篇一:如何使用虚拟机PVE一步一步打造自己想要的ALL IN ONE 主机...
  7. mysql 变量定义和赋值_MySQL变量解析
  8. python搜索关键词自动提交_简单爬虫:调用百度接口,实现关键词搜索(python_003)...
  9. 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数
  10. Hbase对应的Hadoop兼容版本