问题 G: ARM立即数寻址

问题 G: ARM立即数寻址

时间限制: 1 Sec  内存限制: 128 MB
提交: 139  解决: 18
[状态] [讨论版] [提交] [命题人:]
题目描述

ARM处理器立即数寻址方式中,立即数是由一个8bit的常数(大于等于0,小于等于0xff)循环右移(需先扩展为32位)偶数bit(0,2,4,...,30)得到的,所以类似0x101,0x102,0xFF1,0xFF04,0x8000007F等都是无效的立即数,而像0xFF,0x3FC,0xC0000003F,0x104,0xFF0,0xFF00,0xf000000f等都是有效的立即数。 
现在给你一个32bit的正整数,请你判断这个数是否是有效的立即数。

0x12345678循环右移4位变为0x81234567。)

输入

一个正整数T<= 1000000),表示有T组测试数据 
每一组测试数据包含一个32位的十六进制数0<= n <= 0xffffffff)

输出

T行。对于每个n,输出占一行,如果n是有效的立即数输出"YES",否则输出"NO"

样例输入 Copy
3
0xff
0xFF
0xF0F
样例输出 Copy
YES
YES
NO