给定任何数字,例如345.678和-345.678,我想要的是将345.678转换为1并将-345.678转换为-1。
基本上我想将任何数字转换为1或-1,并通过按位运算符保留符号。
尽管我不知道为什么,但是我可以将任何数字转换为-1,如下所示:
345.678 | -1
有什么想法吗?
最佳答案
您可以考虑这个问题的想法sign function in C using bit operators only
(x >> 31) & 1
并通过按位或而不是按位AND来调整结果,以得到
1
而不是0
和-1
而不是1
const sign = x => (x >> 31) | 1;
console.log(sign(345.678));
console.log(sign(-345.678));
关于javascript - 如何将任何数字转换为1或-1,并通过按位运算符保留符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56870624/