由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - BB的面试题-只用&和| 如何reverse a bit string?
相关主题
FLG面试题,压缩整数 (转载)问一道常见面试题,reverse a linked list
nvidia面试题一道很简单的面试题,但是不知道哪个算法好
LC第七题reverse int的测试例子有问题?Bloomberg面试题
Google电面详细经历非常好的总结面试题准备,分享一下!
最近onsite的时候刚拿到一道面试题?面试题: Amazon, LinkedIn and Twitter
M$的几个面试题请教最近onsite的一道面试题:大数相加
一个Linkedlist面试题的教训MapReduce的面试题
一道面试题,请大家给些意见01 Knapsack brute force code
相关话题的讨论汇总
话题: input话题: bit话题: step话题: mask话题: masked
进入JobHunting版参与讨论
1 (共1页)
h*****g
发帖数: 944
1
given 10001110
want to get 01110001
只能用 and/or这两种 bit operation
g*******s
发帖数: 490
2
用& | 和 bit shift的方法有,只用& |的还真不知道
unsigned __int32 reversing_bits(unsigned __int32 input)
{
// complixity O(log [no.of.bits]) = O(1)
// On 32 bit machines it takes 5 steps (logical)
// Step 1
// Mask bit positions 0, 2, 4... shift LEFT this masked number by one
// Mask bit positions 1, 3, 5... shift RIGHT this masked number by one
input = (input & 0x55555555) << 1 | (input & 0xAAAAAAAA) >> 1;
// Step 2
// Mask bit positions 01, 45, 89... shift LEFT this masked number by two
// Mask bit positions 23, 67... shift RIGHT this masked number by two
input = (input & 0x33333333) << 2 | (input & 0xCCCCCCCC) >> 2;
// Step 3
input = (input & 0x0F0F0F0F) << 4 | (input & 0xF0F0F0F0) >> 4;
// Step 4
input = (input & 0x00FF00FF) << 8 | (input & 0xFF00FF00) >> 8;
// Sept 5
input = (input & 0x0000FFFF) << 16 | (input & 0xFFFF0000) >> 16;
return input;
}
g*********s
发帖数: 1782
3
没空间开销约束的话好办啊。
就一位一位的&,记录下每一位,再倒过来一位一位or即可。

【在 h*****g 的大作中提到】
: given 10001110
: want to get 01110001
: 只能用 and/or这两种 bit operation

1 (共1页)
进入JobHunting版参与讨论
相关主题
01 Knapsack brute force code最近onsite的时候刚拿到一道面试题?
Algorithm for ReversalM$的几个面试题
请问如何安全地reverse 一个integer一个Linkedlist面试题的教训
L 电面2一道面试题,请大家给些意见
FLG面试题,压缩整数 (转载)问一道常见面试题,reverse a linked list
nvidia面试题一道很简单的面试题,但是不知道哪个算法好
LC第七题reverse int的测试例子有问题?Bloomberg面试题
Google电面详细经历非常好的总结面试题准备,分享一下!
相关话题的讨论汇总
话题: input话题: bit话题: step话题: mask话题: masked