计算机考研真题 位操作练习

题目描述

给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形式经过循环左移若干位而得到。 循环左移和普通左移的区别在于:最左边的那一位经过循环左移一位后就会被移到最右边去。比如: 1011 0000 0000 0001 经过循环左移一位后,变成 0110 0000 0000 0011, 若是循环左移2位,则变成 1100 0000 0000 0110

输入描述:

每行有两个不大于65535的非负整数

输出描述:

对于每一行的两个整数,输出一行,内容为YES或NO

示例1

输入

2 4

输出

YES



//计算机考研真题 位操作练习
/*
程序设计思想:
    循环移位有如下规则:设总长度N(可取 8 16 32),
则循环左移n (a >> (N - n)) | (a << n)
则循环右移n (a << (N - n)) | (a >> n)
*/
//程序实现:
#include<iostream>
using namespace std;

int main()
{
    unsigned short M,N;    //unsigned short范围在0-65535
    while(cin>>M>>N)
    {
        for(int i=0;i<16;i++)
        {
            if(M==N)
            {
                cout<<"YES"<<endl;
                break;
            }
            else if(i==15)    //若移了16次还不能匹配,则失败
                cout<<"NO"<<endl;
            else
                M=M<<1|M>>15;    //每次循环左移1位
        }
    }
}

原文地址:https://www.cnblogs.com/parzulpan/p/10050534.html

时间: 2024-10-07 00:41:56

计算机考研真题 位操作练习的相关文章

计算机考研真题 排列与二进制

题目描述 在组合数学中,我们学过排列数.从n个不同元素中取出m(m<=n)个元素的所有排列的个数,叫做从n中取m的排列数,记为p(n, m).具体计算方法为p(n, m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! (规定0!=1).当n和m不是很小时,这个排列数是比较大的数值,比如  p(10,5)=30240.如果用二进制表示为p(10,5)=30240=( 111011000100000)b,也就是说,最后面有5个零.我们的问题就是,给定一个排列数,算出其二进制表示的后

2014年计算机考研真题重点选择题部分真题及解析

5个元素有4种编码方案,下列不是前缀编码的是 A.01,0000,0001,001,1 B.011,000,001,010,1 C.000,001,010,011,100 D.0,100,110,1110,1100 ——————————————————涉及考点:字符的前缀编码—————————————————— (考研专硕复习计划http://www.kyjxy.com/zhuanshuo/) 用哈希(散列)方法处理冲突(碰撞)时可能发生堆积(聚集)现象,则下列会直接受到堆积现象影响的是 A.存

21考研|全国院校历年考研真题资源大集合

考研搜集资料.选择资料就好比是作战的武器,是很重要的一件事,武器不好,即使有策略,也总是差那么一点,该怎么选择资料呢? 下面学长就给考研小白们分享一些考研前辈们搜集资料的技巧,希望大家尽自己所能抢占先机,不落后于人.全国500多所高校的考研专业课资料包括视频.真题资料来了. 需要的朋友加Q2608231557获取资源吧! 原文地址:https://www.cnblogs.com/zhaco/p/12298502.html

【计算机综合真题】2012年计算机专业(基础综合)真题试卷

一.单项选择题:第 1-40 小题,每小题 2 分,共 80 分.下列每题给出的四个选项中,只有一个选项最符合试题要求 1.求整数n(n≥0)阶乘的算法如下,其时间复杂度是 2.已知操作符包括„+?. „-?. „*?. „/?. „(?和„)?.将中缀表达式 a+b-a*((c+d)/e-f)+g 转换为等价的后缀表达式 ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符,若栈初始时为空,则转换过程中同时保存在栈中的操作符的最大个数是 . A. 5 B. 7 C. 8

重温考研真题...

#include <stdio.h> struct node{ char data; struct node *next; } NODE; struct node *find(struct node *str1, struct node *str2){ int str1_len = 0, str2_len = 0; struct node *p = str1; while(p->next != NULL){ str1_len++; p = p->next; } p = str2;

2016大连理工大学计算机考研经验

2016考研成绩已出,本人报考大连理工大学计算机科学与技术(本科也在大连理工),初试总分387排名第一,政治64,数学114,英语78,数据结构和计算机组成原理131.这个分数并不算高,现在记下本人复习的全过程,只为抛砖引玉,希望能给大家一点启发. 1.复习流程 数学: 114分不算高但也不算低,16数学有些偏难,手滑错了俩选择俩填空,后边错了半道线代和半道概率和四分之一道高数.复习时之前10年真题基本都在140左右.我们班有一个真题基本都在150的最后考了122. 第一个阶段,从3月开学开始到

计算机考研科目

政治理论.外国语.数学一和计算机学科专业基础综合,卷面满分值分别为100分.100分.150分和150分(数据结构45分 计算机组成45分 操作系统35分 计算机网络25分). 政治英语数一 计算机学科专业基础综合         数据结构(c语言版)  严蔚敏   清华出版社                   45分         计算机组成原理(第四版)   白中英  科学出版社          45分         操作系统(第二版)   宗大华  人民邮电出版社         

2015考研计算机真题大题信号量进程同步问题

哈哈哈,拿到考研的题目来考考你们,看看你们做的出来不,谁让我是正在考计算机研究生的筒子,希望能马上加入研发团队,毕竟我那么想当个技术宅. 45. 有A.B两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题.将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中,设A的信箱最多放M个邮件,B的信箱最多放 N个邮件.初始时A的信箱中有x个邮件(0<x<M). B 中有y个(0<y<N).辩论者每取出一个邮件,邮件数减1.A.B两人操作过程:Code BeginA{While(TR

计算机考研复试真题 众数

题目描述 输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个). 输入描述: 测试数据有多组,每组输入20个1-10之间的数. 输出描述: 对于每组输入,请输出1-10中的众数. 示例1 输入 5 1 5 10 3 5 3 4 8 6 8 3 6 5 10 7 10 2 6 2 输出 5 //计算机考研复试真题 众数 /* 程序设计思想:假双数组法,数组值存放出现的次数,数组下标存放对应的数. */ //程序实现: