首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

「硬核JS数字之美

= 0.3 的问题,我们后面再说 原码、反码和补码 再说 JS 中的数字问题前,我们还需要补充了解下原码、反码和补码的概念,这里暂先不说结论,我们一步一步的来看,最后在总结什么是原码、反码和补码 起源...、尾数三个维度看,S 代表正负,阶码 E 的值远大于尾数 M 的个数,所以阶码 E 决定大小,尾数 M 决定精度 So,我们从阶码 E 入手分析 规格化下,当 E 最大值时,2046(最大阶码) -...1023(偏移量) = 1023(阶码真值)即 011 11111111 从阶码 E 的最大值求出的指数(阶码真值)来看,我们可以得到的数值范围是 -2^1023 ~ 2^1023,使用 JS 的求指函数...) 所以数字的最大正数和最小负数范围如下 1.7976931348623157e+308 ~ -1.7976931348623157e+308 如果超过这个值,则数字太大就溢出了,在 JS 中会显示...0,学名反向溢出 JS中整数的范围 和数字大小不同,数字可以有小数,但是整数就只是单纯整数 我们从尾数 M 来分析,精度最多是 53 位(包含规格化的隐含位 1 ),精确整数的范围其实就是 M 的最大值

5.4K20

队列的最大值滑动窗口的最大值

方法二:用两个栈实现队列 思路 面试题30中,我们实现过用两个栈实现了队列,可以在O(1)时间得到栈的最大值,也就可以得到队列的最大值。...第二个数字是3,比2大,所以2不可能是滑动窗口中的最大值,因此把2从队列里删除,再把3存入队列中。第三个数字是4,比3大,同样的删3存4。此时滑动窗口中已经有3个数字,而它的最大值4位于队列的头部。...第四个数字2比4小,但是当4滑出之后它还是有可能成为最大值的,所以我们把2存入队列的尾部。下一个数字是6,比4和2都大,删4和2,存6。就这样依次进行,最大值永远位于队列的头部。...但是我们怎样判断滑动窗口是否包括一个数字?应该在队列里存入数字在数组里的下标,而不是数值。...当一个数字的下标与当前处理的数字的下标之差大于或者相等于滑动窗口大小时,这个数字已经从窗口中滑出,可以从队列头部把它删除。因此,我们既有可能从头部删除数字,又可能从尾部删除数字,所以要双端队列。 ?

2.2K20
领券