RT,来自网龙笔试题,判断一个整数的二进制是否是01交替。
不知道我的答案对不对。。。负数的情况略复杂。
代码如下:
bool isZeroAndOne(int num) { if(num<0){ num = -num; num = num ^ 2147483647; num++; } if(num==1||num==0) { return false; } else { int last = num & 1; while (num) { num = num >> 1; int cur = num & 1; if ((last == 1 && cur == 1) || (last == 0 && cur == 0)) { return false; } last = cur; } return true; } }