![]() |
1
27
怎么了?
你 可以 在没有分支的情况下使用按位运算执行等效操作:
如果用零替换,它会折叠为:
(来源: this list 是位技巧。) 如果分支在你的平台上非常昂贵,我想这在一些内部循环中可能是值得的,但是它非常模糊,我不想在 极其 时间敏感功能。 |
![]() |
2
4
怎么样: In=… 返回I&~(I>>31); |
![]() |
3
4
下面的代码可以做到这一点,代码读起来非常好,实际上不需要注释;)
然后又
所有负数和所有正数的Voila 0保持不变 |
![]() |
4
3
简短回答:不。 位运算符做的事情非常不同,或者更确切地说是用于不同的问题。 如果你知道整数的大小,你可以测试最高的(最重要的)位;如果是1,数字是负数,你可以这样做。但这比简单的“<”测试要多得多。 |
![]() |
5
3
不是按位而是不同的:
编辑:
|
![]() |
no one special · 32位整数缩放,无溢出 7 年前 |
![]() |
Benn Tan · 比特操作:更难翻动硬币 7 年前 |
![]() |
Ganesh Thampi · 使用位运算符将十进制转换为二进制 7 年前 |
![]() |
Ganesh Thampi · 使用位的奇偶程序 7 年前 |
![]() |
datapanda · 三维网格的莫顿反向编码 7 年前 |
![]() |
rubyquartz · 交换无符号短整数的字节 7 年前 |
|
John Proctor · C中位的掩蔽范围 7 年前 |
![]() |
Areg Sarvazyan · 从无符号int中提取位的函数 7 年前 |
|
user9505617 · 按位异或0xFFFFFFFF? 7 年前 |