![]() |
1
2
假设你使用的东西是C或C++,它会转换为真和1,假到0,你可以使用:
当然,也不能保证它会有任何好处——这取决于编译器、编译器标志、CPU,甚至月球的相位。奥托,我猜不管怎样,它做好事的机会比伤害更多。 |
![]() |
2
2
如果你知道这个值不是零,你可以除以绝对值:
如果它可能是零,并且你仍然想将标志设置为某个东西,那么你可以做类似的事情(C/C++):
当距离为零时,这也会将dir设置为1。 |
![]() |
3
1
方向=distY/abs(distY)
|
![]() |
4
1
看来你在找
如果速度较慢或较快,则位操作取决于语言、目标平台和库(如果使用)。涉及
|
![]() |
5
0
如果你坚持要简洁,试试看
(假设您希望以最合理的方式涵盖零的情况)。
就我个人而言,我会使用if-else结构。 |
![]() |
6
0
|
![]() |
7
0
您可能会告诉我在C中是否有类似的东西,但是Perl只为该作业提供了相等运算符。
从文档中(
|
![]() |
8
0
在任何支持基本位操作(移位)的语言中,这都是有效的——即使该语言没有显式地使用
C#样品:
这是因为负数在小端点上的表示方式 two's complement 硬件(如x86/x64)。基本上,数字中的第一位将是负值的“1”(有关示例,请参阅本文)。
如果你的目标是big-endian,我认为只要改变移位就应该得到正确的结果。 |
![]() |
no one special · 32位整数缩放,无溢出 6 年前 |
![]() |
Benn Tan · 比特操作:更难翻动硬币 6 年前 |
![]() |
Ganesh Thampi · 使用位运算符将十进制转换为二进制 6 年前 |
![]() |
Ganesh Thampi · 使用位的奇偶程序 6 年前 |
![]() |
datapanda · 三维网格的莫顿反向编码 6 年前 |
![]() |
rubyquartz · 交换无符号短整数的字节 7 年前 |
|
John Proctor · C中位的掩蔽范围 7 年前 |
![]() |
Areg Sarvazyan · 从无符号int中提取位的函数 7 年前 |
|
user9505617 · 按位异或0xFFFFFFFF? 7 年前 |