【发布时间】:2020-08-09 22:00:38
【问题描述】:
我见过很多人使用按位运算符来删除小数部分,或使用按位运算符对数字进行四舍五入。
但是,我想知道这实际上是如何工作的?
let a = 13.6 | 0; //a == 13
let b = ~~13.6; // b == 13
我确实搜索过。我能找到的最好的是this。
那里的人在谈论效率、利弊。我对这实际上是如何工作的很感兴趣?
除无符号右移 >>> 之外的所有按位运算都适用于有符号的 32 位整数。所以使用按位运算会将浮点数转换为整数。
所以使用按位运算会将浮点数转换为整数。但是如何?
【问题讨论】:
-
您对整数和浮点值的理解是什么?您到底想知道什么 - 您是否对算法以及它如何处理边缘情况感兴趣,您是否正在寻找引擎实现,您是否想知道 RAM 中的各个位会发生什么?
-
您想知道 RAM 中的各个位会发生什么变化吗? 这就是我要找的?
OR使用小数如何修剪小数部分? -
好的。好吧,它不处理单个位。它将 64 位视为双浮点表示,并对它们进行数学运算以得出整数。
标签: javascript floating-point bit-manipulation