Welcome   HUNAN NORMAL UNIVERSITY ACM/ICPC Judge Online
Home
FAQs
Problem Set
Practices
Online Contests
Major Exercises
OI Special
Judgement
Submit
Online Status
User Ranklist
Users
Register new
Login
Web Links
Hunan Normal University
College of Information Science and Engineering
循环移位
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB
Total submit users: 332, Accepted users: 178
Problem 10458 : No special judgement
Problem description
  计算机中的每一个数都是用2进制表示的。例如数值5,因为将其看做是一个32位整型,在计算机中就表示为:0000 0000 0000 0000 0000 0000 0000 0101。一共是32个二进制位。
现在将其循环右移一位,将变成:1000 0000 0000 0000 0000 0000 0000 0010。这个数是多少呢?如果是int类型,这个数是-2147483646。
如果将5循环右移2位,将变成:0100 0000 0000 0000 0000 0000 0000 0001。这个数就变成了1073741825。
非常奇妙,对int做循环移位将使得结果在正负之间来回变换。循环左移的原理是一样的。而且,你应该能够发现把5循环左移31位,就等于将其循环右移1位。当然这也与5是用32位表示有关,如果用64位表示就不是这样了。


Input
  输入第一行为一个正整数T,其后有T行。每行两个32位整数n、m。n≥0时,表示将m循环右移n位;否则,将m循环左移-n位。


Output
  对每个输入,输出一行,为移位后的结果。

Sample Input
2
1 2
-2 2
Sample Output
1
8
Judge Tips
  注意题目意思,循环移位,如二进制(假设整数用8位二进制表示)10000001向左移动一位变成00000011,!!!!!!!!!!!!!!

Submit   Clarifications   Judge Status  Problems  Ranklist 

HUNAN NORMAL UNIVERSITY ACM/ICPC Judge Online, Version 2010.5.5.final.
Web visits:2091 today,16258818 total, since 2010-05-07