由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一些位运算的题目
相关主题
那1000道题我其实说的是...c++中,对象的实例都被分配在HEAP里 这个概念对么?
随便写写一些经验吧 2(未完待续)请问一道很难的面试题
Goog面试挂了,回报一下本版关于算术表达式求值的谜思?
给大家列几个C++的盲点探讨IT大公司的hiring bar?
请教个C题目递归法parse计算数字string
amazon电面大家是怎么读代码的问一个post fix 算式计算的问题
问个c++题问道题
stl map的一道面试题,求助求助[G] 给定k个数字,求所有表达式结果为X
相关话题的讨论汇总
话题: int话题: 返回话题: return话题: 负数话题: 0x01
进入JobHunting版参与讨论
1 (共1页)
d**********x
发帖数: 4083
1
只能使用 ! ~ & ^ | + << >>
可以用 =,可定义局部变量,字长32bit,右移是算数右移,不许cast
常量只能在0~0xff之间。实际上一般面试不会有这个约束,就忽略吧
1. int isAsciiDigit(int x);
如果x是'0'~'9',返回1,否则返回0
2.int anyEvenBit(int x);
如果任何偶数位上有1返回1 (1 --> 1, 2 --> 0)
3.int copyLSB(int x);
如果x & 1,则返回0xffffffff,否则返回0
4.int leastBitPos(int x);
5.int divpwr2(int x, int n);
输出 x / pow(2, n);,n非负。
6.int conditional(int x, int y, int z);
相当于x ? y : z
7.int isNonNegative(int x);
非负数返回1
8.int isGreater(int x, int y);
如果x > y,返回1
9.int absVal(int x);
返回x的绝对值
10.int isPower2(int x);
如果x是pow(2, n),则返回1.对于所有负数返回0
11.int bitCount(int x);
返回x的2进制表示的1的个数。
因为作业due已经过去很久了所以应该没啥policy问题。。
至今最少的操作符个数是
1.6 2.7 3.2 4.3 5.6 6.6 7.2 8.8
9.3 10.7 11.24
c**s
发帖数: 159
2
请问操作符个数怎么算出来的
比方说 5题 不是 x >> n 么?
d**********x
发帖数: 4083
3
如果x是负数。。。

【在 c**s 的大作中提到】
: 请问操作符个数怎么算出来的
: 比方说 5题 不是 x >> n 么?

c********t
发帖数: 5706
4
mark, 有空都练一下。
第二题 应该是(1-->0, 2-->1)吧?

【在 d**********x 的大作中提到】
: 只能使用 ! ~ & ^ | + << >>
: 可以用 =,可定义局部变量,字长32bit,右移是算数右移,不许cast
: 常量只能在0~0xff之间。实际上一般面试不会有这个约束,就忽略吧
: 1. int isAsciiDigit(int x);
: 如果x是'0'~'9',返回1,否则返回0
: 2.int anyEvenBit(int x);
: 如果任何偶数位上有1返回1 (1 --> 1, 2 --> 0)
: 3.int copyLSB(int x);
: 如果x & 1,则返回0xffffffff,否则返回0
: 4.int leastBitPos(int x);

l**********1
发帖数: 415
5
mark
h****n
发帖数: 1093
6
挺难的,瞎做了一些,没完全按照要求做
1. int isAsciiDigit(int x);
如果x是'0'~'9',返回1,否则返回0
2.int anyEvenBit(int x);
如果任何偶数位上有1返回1 (1 --> 1, 2 --> 0)
static const int mask = 0x55555555;
return (mask & x) != 0 ? 1 : 0;
3.int copyLSB(int x);
如果x & 1,则返回0xffffffff,否则返回0
return (x<<31)>>31;
4.int leastBitPos(int x);
return x&(~x+1);
5.int divpwr2(int x, int n);
输出 x / pow(2, n);,n非负。
6.int conditional(int x, int y, int z);
相当于x ? y : z
return (~!x+1)&(z) + (~!!x+1)&(y) ;
x !x !!x
0 1 0
非零 0 1
x ~!x+1 ~!!x+1
0 -1 0
非零 0 -1
7.int isNonNegative(int x);
非负数返回1
return !(x>>31&0x01);
8.int isGreater(int x, int y);
如果x > y,返回1
int z = x - y;
return x-(z>>31&0x01)*(x-y);
9.int absVal(int x);
返回x的绝对值
return x>>31&0x01 ? ~x + 1 : x;
10.int isPower2(int x);
如果x是pow(2, n),则返回1.对于所有负数返回0
return x&&!(x&(x-1))&&!(x>>31&0x01) ? 1 : 0;
11.int bitCount(int x);
int i=0;
while(x)
{
i++;
x &= (x-1);
}
return i;

【在 d**********x 的大作中提到】
: 只能使用 ! ~ & ^ | + << >>
: 可以用 =,可定义局部变量,字长32bit,右移是算数右移,不许cast
: 常量只能在0~0xff之间。实际上一般面试不会有这个约束,就忽略吧
: 1. int isAsciiDigit(int x);
: 如果x是'0'~'9',返回1,否则返回0
: 2.int anyEvenBit(int x);
: 如果任何偶数位上有1返回1 (1 --> 1, 2 --> 0)
: 3.int copyLSB(int x);
: 如果x & 1,则返回0xffffffff,否则返回0
: 4.int leastBitPos(int x);

1 (共1页)
进入JobHunting版参与讨论
相关主题
[G] 给定k个数字,求所有表达式结果为X请教个C题目
IBM高级软件工程师的示例代码,大家看看有多少个bug?amazon电面大家是怎么读代码的
leetcode Different Ways to Add Parentheses 怎么做?问个c++题
这是道什么题?难题还是超级简单题?stl map的一道面试题,求助求助
那1000道题我其实说的是...c++中,对象的实例都被分配在HEAP里 这个概念对么?
随便写写一些经验吧 2(未完待续)请问一道很难的面试题
Goog面试挂了,回报一下本版关于算术表达式求值的谜思?
给大家列几个C++的盲点探讨IT大公司的hiring bar?
相关话题的讨论汇总
话题: int话题: 返回话题: return话题: 负数话题: 0x01