美文网首页
JavaScript - 数字与0进行或运算的取整操作

JavaScript - 数字与0进行或运算的取整操作

作者: __唐一__ | 来源:发表于2019-10-09 00:19 被阅读0次

作者:唐一

背景:最近看的React源码中提到这个,就想了解下

知识储备

1、标准。JavaScript采用的IEEE754标准作为数字存储标准

采用IEEE754也是JavaScript天生就带bug的渊源了

2、IEEE754规定双精度数值以64位存储,其中1位为符号位,11位为指数位,剩余52位为尾数为

不知道指数位和尾数位、符号位的自行找计算机组成原理充电

S PPP PPPP PPPP TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT

S:符号位

P:指数位

T:尾数位

对于无符号数值,则位11位指数位,53位尾数位

3、JavaScript的位运算以32二进制执行

进行位运算时,先将数值转换成32位有符号整数(重点:整数),既然取整了,自然就去除了小数部分了

正文

还有什么正文呦,上面的只是储备都讲完了。。。

// 这里才是重要的
let floatNum = 10 / 3;
console.log(floatNum); // 3.3333333333333335
console.log(floatNum.toString(2)); // 转换成二进制表示的字符串
// "11.010101010101010101010101010101010101010101010101011"

let intNum = floatNum | 0;
console.log(intNum); // 3
console.log(intNum.toString(2)); // "11"

那么floatNum0进行或运算后,舍弃了小数部分,二进制也由原来的妖妖点XXXX变成了妖妖

0000 0000 0000 0000 0000 0000 0000 0011

0000 0000 0000 0000 0000 0000 0000 0000

上面的3下面的0进行与运算,也即是全部保留3的位数据,最终还是3

所以主要| 0的操作主要是看中了取整的功能,位运算的不是主要看点

Note:好高级的样子?但是我不建议你这么用

1、可读性低,没有注释别人不知道你在干嘛

2、丢失高位数据,原本52(或53)位的数据,被舍弃掉高位的21(或22位)的数据,非常危险

相关文章

  • JavaScript - 数字与0进行或运算的取整操作

    作者:唐一背景:最近看的React源码中提到这个,就想了解下 知识储备 1、标准。JavaScript采用的IEE...

  • 位运算符

    位取反运算符 取反翻运算符 ~ 是对所有位的数字进行取反操作0 变 11 变 0 位与运算符 位与运算符 & 可以...

  • JavaScript位运算 number|0取整和浮点数位运算

    >参考:知乎作者@我是个AI 位运算取整原理 JavaScript位运算取整原理 浮点数位运算 乘基数取整法: 1...

  • R-数据取整函数

    1 取整运算 1.1 ceiling() 向上取整 1.2 floor() 向下取整 1.3 trunc() 向0...

  • 与、或、异或运算

    与、或、异或运算 1.与运算(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0;0&1=...

  • JavaScript中的四舍五入

    在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种: 【1】向上取整:ceil 【2】向下取整:...

  • 前端的一些特殊技法

    React Fragment 的使用 JavaScript 数字向下取整

  • JavaScript 对输入的数字进行向上或向下取整

    题目要求:Math 取整,页面弹出,让用户填数据,对用户内容进行判断,再做取整操作。知识点:Math 取整的不同方...

  • Python运算符

    1、//#取整 2、&#按位与运算符,相应的位数都为1,则该位的结果是1,否则为0 3、|#(左斜杠)按位或运算符...

  • python_数据类型

    一、数字 1、数字分类 2、算数运算符 算数运算符分类:加(+)减(-)乘()除(/)取余(%)求幂(*)取整(/...

网友评论

      本文标题:JavaScript - 数字与0进行或运算的取整操作

      本文链接:https://www.haomeiwen.com/subject/gyfwpctx.html