TooY0ung的数学难题(求解4幂次)

本人做了30分钟,代码显示答案错误,请老手纠正。
TooY0ung的数学难题
描述

TooY0ung给定四个无符号32位整数a b c d求A=a+b×2^32+c×2^64+d×2^96

是否是4的幂次。

**注:若一个数是4的幂次 则存在一个整数n使得4^n=A。
**

输入
输入有多组数据 每组数据有四个无符号32位整数a,b,c,d.

输出
每组数据输出一行 若a+b×2^32+c×2^64+d×2^96

是4的幂次,输出"Yes"否则输出"No"(不含双引号)

输入样例 1

4 0 0 0
1 2 3 4
0 0 0 1
输出样例 1

Yes
No
Yes
提示

无符号32位整数(unsigned int)范围是[0,2^32-1]

数据范围:

对于20%的数据输入只包含一组数据。

对于额外的20%数据输入只包含三组数据。

对于额外的60%的数据输入数据组数不限。

给个提示

关于如何进行多组数据输入:

while(cin>>a>>b>>c>>d)即可

#include<bits/stdc++.h> 
using namespace std;

bool simi(int n){
      if(n>=1&&(n&(n-1))==0)cout<<"Yes";
      else cout<<"No";
}
int main(){
    int a,b,c,d,z;
    while(cin>>a>>b>>c>>d){
    z=a+b*2^32+c*2^64+d*2^96;
    simi(z);
}
    return 0;
}

以上是本人代码,请纠正 勿喷
对于正常人来说此题非常简单

z=a+b2^32+c2^64+d*2^96; 2^32 等求数的几次方用错了‘^' 符号, 应是:pow(2, 32)

看看你的输出
可以实现。以下是C语言代码:
这样试试