![]() |
1
40
看到著名的
Bit Twiddling Hacks
但是,如果您使用硬件或通信协议,有许多“检查/设置/切换位n”类型的黑客非常有用。 |
![]() |
2
126
对字符串(字符)使用位操作将字母转换为 小写字母 :
将字母转换为 大写字母 :
使转化 信函案:
信 位置 字母表:
收到信 位置 字母表(用于 大写字母 仅限字母):
收到信 位置 字母表(用于 小写字母 仅限字母):
注意:使用英文字母以外的任何字符都会产生垃圾结果。 |
![]() |
3
55
获取最大整数
获取最小整数
获得最大长度
乘以2
除以2
乘以2的m次方
除以2的m次幂
检查奇数
交换两个值
获取绝对值
获取两个值的最大值
得到两个值的最小值
检查两个标志是否相同
计算2 ^ n
阶乘是否为2
模2^n对m
得到平均值
得到n的m位(从低到高)
将n的m位设置为0(从低到高)
N+ 1
N 1
获取对比度编号
如果(x==a)x=b;如果(x==b)x=a;
|
![]() |
4
12
我只使用过三种频率:
|
![]() |
5
6
Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt (PDF) . 这本书有很多东西,我是通过一个链接找到的。 http://www.hackersdelight.org/
|
![]() |
6
2
您可以压缩数据,例如整数集合:
|
![]() |
7
2
我使用位运算符有效地实现了 bitstrings . 在我的应用程序中,位串被用来表示离散空间中的位置(一个 octree ,如果你感兴趣,用 Morton ordering )需要进行距离计算,以了解网格上的点是否在特定半径内。 |
![]() |
8
2
计算集合位、查找最低/最高集合位、从顶部/底部集合位和其他位中查找n是有用的,值得一看 bit-twiddling hacks 站点。 这就是说,这种事情并不重要。有一个库很有用,但即使这样,最常见的用法也是间接的(例如使用位集容器)。此外,理想情况下,这些将是标准的库函数——许多函数在某些平台上使用专门的CPU指令更好地处理。 |
![]() |
9
1
1)除以/乘以2的幂
2)互换
|
![]() |
10
1
虽然乘/除移位看起来很漂亮,但我偶尔只需要把布尔压缩成比特。为此,您需要位和/或,以及位移位/反转。 |
![]() |
11
1
我想用一个函数把数字四舍五入到下一个最大的二次幂,所以我访问了几次被提到的Bit Twidling网站,并提出了这个问题:
我用它
|
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Ego Placebo · 标识BitValue列中的值 7 年前 |
![]() |
OLIVER.KOO · 转换长。最大浮点数 7 年前 |
![]() |
CrippledTable · IBM单精度浮点数据转换为预期值 7 年前 |
![]() |
committedandroider · 为什么我的位集大小为0? 7 年前 |
![]() |
Amanda · Swift-将UInt8字节转换为位数组 7 年前 |
![]() |
Eduardo Lucio · 最适合保存文件字节的向量类型是什么? 8 年前 |