为什么移动 0 会截断小数?

2023-12-03

我最近发现了这段JavaScript代码:

Math.random() * 0x1000000 << 0

我知道第一部分只是生成 0 到 0x1000000 (== 16777216) 之间的随机数。

但第二部分似乎很奇怪。执行位移 0 有何意义?我不认为它会做任何事情。然而,经过进一步调查,我注意到 0 的移位似乎截去小数部分的号码。此外,无论是右移、左移,还是无符号右移,都无关紧要。

> 10.12345 << 0
10
> 10.12345 >> 0
10
> 10.12345 >>> 0
10

我用 Firefox 和 Chrome 进行了测试,行为是相同的。那么,这种观察的原因是什么?这只是 JavaScript 的一个细微差别,还是其他语言中也会出现这种情况?我以为我理解了位移,但这让我感到困惑。


你是对的;它用于截断值。

原因>>之所以有效,是因为它仅对 32 位整数进行操作,因此该值被截断。 (它也常用于此类情况,而不是Math.floor因为按位运算符的运算符优先级较低,因此可以避免混乱的括号。)

由于它仅对 32 位整数进行操作,因此它也相当于带有0xffffffff四舍五入后。所以:

0x110000000      // 4563402752
0x110000000 >> 0 // 268435456
0x010000000      // 268435456

但这不是预期行为的一部分,因为Math.random()将返回 0 到 1 之间的值。

此外,它的作用与| 0,这是比较常见的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么移动 0 会截断小数? 的相关文章

  • JavaScript 中的 touchstart 不再返回 TouchList

    我遇到了一个非常奇怪的问题 我正在绑定touchstart事件到一个元素 并且想要检索事件的 X 和 Y 坐标 全部文档 http developer apple com library safari documentation apple
  • Google Closure 和生成的 getter/setter

    我正在尝试让 KineticJS 与 Google Closure Compiler 一起使用 然而 KineticJS 根据变量的名称生成它的 getter 和 setter 像这样的事情 add getter and setter me
  • 提供文件数据时触发“drop”事件

    Question 我如何在提供文件时触发drop场的事件 其中我在加载时无权访问 Details 有一个页面 其中有一个字段 上面附加了drop掉落时处理图像的侦听器 我希望能够通过以下方式使用这个过程pasting一个图像 我知道如何从粘
  • 请使用同一按钮播放和暂停音频

    我有这段代码并且只是播放 但我想使用相同的按钮 图像 播放和暂停 并且我不知道我需要添加什么 我需要做什么 请帮帮我
  • JavaScript:所有标准内置对象实际上都是构造函数吗?

    我最近一直在研究 JavaScript 在花了几个月的时间之后 我仍然对一些内部结构感到困惑 具体来说 我试图理解所谓的标准内置对象 https developer mozilla org en US docs Web JavaScript
  • 如何告诉 Sonar 使用我的可靠报告来获取单元测试结果

    我们有一个 Jenkins 作业 其中包含一堆 javascript 文件 我们通过 grunt 构建项目 并在构建结束时运行 JSCover 来运行单元测试并收集代码覆盖率 这一切都有效 我们得到了一个不错的 LCOV 文件 并且在 ta
  • pointdown 与 onclick:有什么区别?

    两者有什么区别onpointerdown and onclick事件处理程序 有任何实际差异吗 事件在 DOM 树上传播的方式不一样吗 是否有一些设备仅响应这些事件之一 我最初以为这只是pointerdown在触摸设备或笔中触发 但是onc
  • 如何在 Electron 中使窗口大小响应。 (打开应用程序时)

    我最近开始在 Electron 上制作一个应用程序 我想让窗口具有响应能力 例如 如果我在不同的屏幕上打开应用程序 它应该根据屏幕尺寸以全尺寸打开 我的代码 app on ready gt const htmlPath path join
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • Chrome 扩展程序导致 DOM 闪烁,该扩展程序会在页面加载之前删除 DOM 元素

    我正在编写一个 chrome 扩展 我想在页面加载之前删除内容 例如this http tech blog tomchambers me 2016 01 13 How to write a simple page rewriting Chr
  • 多个模板槽的相同槽内容

    在vuejs中 有没有一种方法可以为多个插槽设置相同的内容 而无需复制粘贴 So this
  • 带搜索框的 D3 图表

    我在 D3 中创建了一个图表 其中节点显示特定个人创建文档的时间 该图表还显示了一个搜索框 该搜索框根据搜索框输入是否与与该文档关联的单词匹配而将节点变成红色 这些单词列在数据集的第 5 列中 请参阅下面的数据集 我的问题 一旦将搜索输入到
  • 如何使用 $.ajax 发送 JSON 而不是查询字符串?

    有人可以简单地解释一下如何让 jQuery 发送实际的 JSON 而不是查询字符串吗 ajax url url dataType json I was pretty sure this would do the trick data dat
  • CORS:为什么我的浏览器不发送 OPTIONS 预检请求?

    从我读到的内容来看CORS https en wikipedia org wiki Cross origin resource sharing 我理解它应该按如下方式工作 客户端的脚本尝试获取资源从服务器不同的起源 浏览器拦截这个请求并首先
  • Firefox 本地主机上的 Twilio 屏幕共享?

    目前 Firefox 中本地主机上的屏幕共享会引发以下错误 The request is not allowed by the user agent or the platform in the current context 这是我的代码
  • 未捕获的类型错误:无法分配给只读属性

    我正在尝试 Nicholas Zakas 所著的 Professional JavaScript for Web Developers 一书中的这个非常简单的示例 但我不知道我在这里做错了什么 我错过了一些非常简单的事情 但我被困住了 这是
  • 如何捕获 google 地图的无效 API 密钥

    我有这个代码 如果密钥无效 则会弹出警报 但我想在这种情况下执行一些操作 但我不知道如何连接它 有任何想法吗 Google 不提供检查 Google 地图 API 密钥的外部方法 因此 您无法使用例如查询某些服务 此代码有效吗abcde12
  • jQuery:array[i].children() 不是函数

    以下代码的灵感来自http ignorethecode net blog 2010 04 20 footnotes http ignorethecode net blog 2010 04 20 footnotes 当您将光标移到脚注符号上时
  • Jquery 脉动改变颜色或图像

    我正在尝试使用 jquery 脉动代码让 div 改变颜色 但我希望它从红色变为黑色 但我听说要做到这一点 你必须下载某个插件 所以我希望它脉动为图片 到目前为止我有这两个代码 img src 36 gif alt width 105 he
  • 离子选择:预选值在单击一次之前是不可见的

    我刚刚在 ionic 版本 6 中创建了一个 ion select 我的问题是 我在页面加载时已成功预选了一个值 但此预选值未显示在 UI 中 它只是在我单击选择之后出现 但在它没有出现之前 如图 2 所示 我在 ionViewWillEn

随机推荐

  • CUDA C++11,lambda 数组,按索引的函数,不起作用

    我在尝试让 CUDA 程序按索引管理 lambda 数组时遇到问题 重现问题的示例代码 include
  • responseText 有效,但 responseXML 始终为 null

    我已经浏览了这里可以找到的所有答案 但无法解决这个问题 我很确定我没有错过任何明显的事情 我正在尝试加载基于经纬度的地图标记 问题是 当我尝试返回 AJAX 响应时 responseXML 始终为 null 如果我使用responseTex
  • 如何使用 Facebook GRAPH API 删除 Facebook 评论帖子?

    我开始研究这个是因为我希望能够删除 Facebook 活动墙上的评论 因为 删除帖子 似乎不适用于活动墙上的评论 然而 由于我不知道是否有可能 我决定看看是否可以手动删除我在自己的墙上发布的帖子 因为这是可能的 注意我是NOT使用任何 SD
  • Intent.getExtras() 总是返回 null

    我正在尝试通过通知和事件运行活动onCreate我想 重定向 为此添加对信息的思考Intent班级 一个重要的特性是生成通知的类是通过服务执行的 我从中检索上下文getApplicationContext类提供的方法android app
  • 在文件名前批量添加字符串

    我正在处理 Windows 批处理文件 需要更改当前目录中的文件名 我有这些文件 file1 txt file2 txt file3 txt 我需要在每个文件名之前添加字符串 REG 如下所示 REG file1 txt REG file2
  • VBA控制功能区?

    我正在为 Excel 2010 创建 VBA 加载项 我使用了 Microsoft Office 的自定义 UI 编辑器 创建我自己的功能区的工具 但是 我想为用户提供加载我的加载项的选项 而不显示功能区 或者显示功能区的不同部分 通过菜单
  • tf_agents 自定义 time_step_spec

    我正在修改 tf agents 但在定制时遇到问题time step spec 我正在尝试在健身房 Breakout v0 中训练 tf agent 我已经制作了一个函数来预处理观察结果 游戏像素 现在我想修改 time step 和 ti
  • Silverlight Web 服务调用在 Studio 中可以工作,但从网站运行时失败

    我们正在构建一个 Silverlight 应用程序并调用 Silverlight WCF 服务 从 Visual Studio 运行应用程序时 一切正常 当我们部署到网站并运行应用程序时 每次调用 Web 服务时 我们都会收到以下错误 或类
  • 何时使用“sbt 程序集”和“sbt 编译 && sbt 包”?

    我想知道我什么时候应该使用sbt assembly什么时候sbt compile sbt package 我正在使用 Intellij IDEA 在本地计算机上编写一个程序 并使用以下命令进行编译sbt compile sbt packag
  • 如何使用外部自定义 CSS 覆盖 Bootstrap 3 样式?

    如何使用外部自定义 CSS 覆盖 Bootstrap 3 样式 div class navbar navbar inverse navbar fixed top div CSS navbar inverse background color
  • 释放NSTimer的正确方法?

    在我的 dealloc 方法中释放 NSTimer 的正确方法是什么 它是用以下代码创建的 void mainTimerLoop mainTimer NSTimer scheduledTimerWithTimeInterval 1 10 t
  • Eclipse Luna:未调用处理程序的 @CanExecute 方法

    我在 Eclipse Luna RCP 中的命令处理程序遇到问题 在我的 E4 应用程序模型中 我定义了一些必须启用的命令和相关处理程序 仅在某些情况下 因此 在我的处理程序 POJO 中 我实现了 注释为的方法 CanExecute我在其
  • MySql 查询-日期范围内的日期范围

    我使用 mySql 5 和 IIS I have products 有一个start date场和一个end date field 我需要运行一个查询 该查询将获取用户输入的开始日期和结束日期 并输出产品在日期范围内运行的天数 Exampl
  • 列表上的哈希函数与其中项目的顺序无关

    我想要一个为一组整数分配值的字典 例如key is 1 2 3 and value会有一定的价值 事情是这样的 3 2 1 在我的情况下需要进行相同的处理 因此如果我采用散列方法 散列需要相等 该套装将包含 2 至 10 件物品 项目的总和
  • 尝试每 x 秒执行一次文件

    请查找每 10 秒重复一次的更新代码 然而问题是它每 10 秒在屏幕上创建一个新的 GUI 而不是每 10 秒只更新数据 请你给个建议 package learningfromscrach import java awt import ja
  • 使用 timepicker.js 时“timepicker 不是函数”?

    我正在尝试使用此插件将时间选择器放入表单中 http jonthornton github io jquery timepicker 看起来我所要做的就是下载库并使用 jQuery 和 jQuery ui 但到目前为止我无法让它工作 即使
  • 查找具有最大可能总和的子矩阵 O(n^2)

    我正在尝试用 Java 编写一个程序 当给定一个 MxN 矩阵时 它将找到具有最大数字和的 连续 子矩阵 然后程序需要返回子矩阵的左上角坐标和右下角坐标 矩阵可以包含负数 并且矩阵和子矩阵都不需要是正方形 我看到这里讨论了这个问题 获取总和
  • Swift 中的 URL 验证

    在我的 Swift iOS 项目中 我想在请求服务器之前检查 url 是否有效 我之前在 Objective C 代码中检查了许多元素 例如 www http https 等是否存在 以验证 url 是否正确 Swift 代码中有类似的东西
  • 微调预训练的 word2vec Google 新闻

    我目前正在使用在 Google 新闻语料库上训练的 Word2Vec 模型 来自here 由于仅在 2013 年之前对新闻进行训练 因此我需要更新向量 并根据 2013 年之后的新闻在词汇表中添加新单词 假设我在 2013 年之后有一个新的
  • 为什么移动 0 会截断小数?

    我最近发现了这段JavaScript代码 Math random 0x1000000 lt lt 0 我知道第一部分只是生成 0 到 0x1000000 16777216 之间的随机数 但第二部分似乎很奇怪 执行位移 0 有何意义 我不认为