由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - reverse bits 的题目
相关主题
reverse words, not the Microsoft one!!!考考你的能力。
请教registerReverse Words in a String
Reversing a singly linked list请教个bitarray distance的问题
reverse LL recursively问几个神经网络的问题
做题了,做题了,看谁能搞清楚变量就是个酱油瓶子
C++ software engineer 3 years expectationgood C++ open source project?
靠,被一个CRC32搞了半天。C语言里的<<=是什么意思?
问个C++算法stl 源代码疑问
相关话题的讨论汇总
话题: reverse话题: 方法话题: bits话题: 题目话题: 交换
进入Programming版参与讨论
1 (共1页)
s*****n
发帖数: 956
1
前不久看到有人提到这个问题。
请问这个reverse是把1变成0,0变成1 还是左右reverse?
1->0,0->1 XOR 11111111 就行了。
左右reverse该怎么弄呢?
X****r
发帖数: 3557
2
你知道数1 的个数那道题怎么做,就知道左右reverse这道题怎么做。
(回有四种写法……)

【在 s*****n 的大作中提到】
: 前不久看到有人提到这个问题。
: 请问这个reverse是把1变成0,0变成1 还是左右reverse?
: 1->0,0->1 XOR 11111111 就行了。
: 左右reverse该怎么弄呢?

s*****n
发帖数: 956
3
数1的题目很久前在一本interview书上看过,好像是挺多方法的,而且越来越出乎想象
。现在不记得了,去找来看看。
k****f
发帖数: 3794
4
jhq有

【在 s*****n 的大作中提到】
: 数1的题目很久前在一本interview书上看过,好像是挺多方法的,而且越来越出乎想象
: 。现在不记得了,去找来看看。

s****u
发帖数: 118
5
是左右reverse吧,有奇技淫巧的,不是很记得..

【在 s*****n 的大作中提到】
: 前不久看到有人提到这个问题。
: 请问这个reverse是把1变成0,0变成1 还是左右reverse?
: 1->0,0->1 XOR 11111111 就行了。
: 左右reverse该怎么弄呢?

s*****n
发帖数: 956
6
可能我太笨了,我看了数多少个1的题目之后还是不知道改怎么左右reverse。
谁指教一下?
X****r
发帖数: 3557
7
这个……
直接方法:一位一位移位
取巧的方法:就地交换
实用的方法:查表,或部分查表和就地交换相结合。
就地交换方法如下,假设是32位无符号整数
x = ((x & 0x55555555) << 1) | ((x & 0xAAAAAAAA) >> 1);
x = ((x & 0x33333333) << 2) | ((x & 0xCCCCCCCC) >> 2);
x = ((x & 0x0F0F0F0F) << 4) | ((x & 0xF0F0F0F0) >> 4);
x = ((x & 0xFF00FF00) << 8) | ((x & 0x00FF00FF) >> 8);
x = ((x & 0xFFFF0000) << 16) | ((x & 0x0000FFFF) >> 16);

【在 s*****n 的大作中提到】
: 可能我太笨了,我看了数多少个1的题目之后还是不知道改怎么左右reverse。
: 谁指教一下?

s*****n
发帖数: 956
8
多谢多谢!这自己想怎么也想不出来。

【在 X****r 的大作中提到】
: 这个……
: 直接方法:一位一位移位
: 取巧的方法:就地交换
: 实用的方法:查表,或部分查表和就地交换相结合。
: 就地交换方法如下,假设是32位无符号整数
: x = ((x & 0x55555555) << 1) | ((x & 0xAAAAAAAA) >> 1);
: x = ((x & 0x33333333) << 2) | ((x & 0xCCCCCCCC) >> 2);
: x = ((x & 0x0F0F0F0F) << 4) | ((x & 0xF0F0F0F0) >> 4);
: x = ((x & 0xFF00FF00) << 8) | ((x & 0x00FF00FF) >> 8);
: x = ((x & 0xFFFF0000) << 16) | ((x & 0x0000FFFF) >> 16);

bz
发帖数: 1770
9
现在这么搞的都是孔已己。连micro-controller们都不搞这些了。readability is
ruling.

【在 s*****n 的大作中提到】
: 前不久看到有人提到这个问题。
: 请问这个reverse是把1变成0,0变成1 还是左右reverse?
: 1->0,0->1 XOR 11111111 就行了。
: 左右reverse该怎么弄呢?

s****u
发帖数: 118
10
感觉如果真的跑的快很多的话也是有用的,有人明白就好,不是哪里都是readability
第一吧
但是拿来面试的人真是烧了

【在 bz 的大作中提到】
: 现在这么搞的都是孔已己。连micro-controller们都不搞这些了。readability is
: ruling.

k*k
发帖数: 508
11
言论自由万岁!

【在 bz 的大作中提到】
: 现在这么搞的都是孔已己。连micro-controller们都不搞这些了。readability is
: ruling.

1 (共1页)
进入Programming版参与讨论
相关主题
stl 源代码疑问做题了,做题了,看谁能搞清楚
怎样用减法和移位代替除法C++ software engineer 3 years expectation
C怪问题一个靠,被一个CRC32搞了半天。
Indent的问题问个C++算法
reverse words, not the Microsoft one!!!考考你的能力。
请教registerReverse Words in a String
Reversing a singly linked list请教个bitarray distance的问题
reverse LL recursively问几个神经网络的问题
相关话题的讨论汇总
话题: reverse话题: 方法话题: bits话题: 题目话题: 交换