当前位置: 首页 > 知识库问答 >
问题:

按位扩展脚本

金理
2023-03-14

当我运行0x00000000C17E000F时

每个的二进制是

  • 0x00000000C17E000F:(省略32个零)1100 0001 0111 1110 0000 0000 1111
  • 0x00000000C17E0000:(省略32个零)1100 0001 0111 1110 0000 0000 0000 0000

所以我预期结果<代码>0x00000000C17E000F

    < Li > < code > 3246260224 :(32/0,省略)1100 0001 0111 1110 0000 0000 0000 < li> -1048707072:(第32页,共1页,略)1100 0001 0111 1110 0000 0000 0000

为什么Javascript计算0

(我听说Javascript Number由64位组成。)


共有1个答案

堵彬彬
2023-03-14

从MDN上的按位运算符:

操作数转换为32位整数,并由一系列位(零和一)表示。超过32位的数字将丢弃其最高有效位。

你的数字不在-2^31和2^31之间,所以它们会被转换改变。

请注意,这并不是真正的溢出,也不是存储的限制:Javascript中的数字是64位(IEEE754双精度),这意味着它们可以存储- 2 ^ 53和2 ^ 53之间的所有整数。32 位的限制只是按位运算符的设计。

这句话的结果是,你很可能会设计自己的函数来对更大的整数进行按位运算:

function and(a, b){
    let abits = Array.from(a.toString(2));
    let bbits = Array.from(b.toString(2));
    return parseInt(abits.map((abit, i)=>abit & bbits[i]).join(""), 2);
}
console.log(and(0x00000000C17E000F, 0x00000000C17E0000)); // 3246260224
 类似资料:
  • 问题内容: 这是我的脚本: 在“ read caminho”中,我可能会从用户那里收到〜/ somefolder之类的路径。当脚本接收到这样的路径时,mv和mkdir都不会进行波浪号扩展,因此它将尝试创建〜/ somefolder而不是/ home / username / somefolder,因此失败。 如何确保将波浪号转换为HOME变量? 问题答案: 您可能需要评估该变量以正确替换它。一个例

  • 问题内容: Linux bash脚本: 执行结果: 扩展到文件列表,它实际上是脚本本身。如何防止这种情况并查看实际变量值?在一般情况下,可能会比复杂,例如:。 问题答案: 您还需要转义变量: 并在您的职能:

  • 问题内容: 该插件的网站说,您可以创建一个常规脚本来运行以确定参数列表。 怎么解决呢?指示什么也没说。 该脚本在什么情况下运行? 我应该从脚本中返回什么? 脚本的cwd是哪个目录?是环境变量WORKSPACE吗? 还有一个名为的额外字段。如何使用? 问题答案: 我必须深入研究源代码才能找到这些问题的答案,所以我希望这对其他人有帮助。 1.脚本在什么情况下运行? 该脚本在groovy.lang.Gr

  • 考虑以下TS定义: 没什么问题,但我想知道是否有一个等效?显然,可以将泛型传递到接口中,尽管这不是我想要的,例如: 这里的示例是在React代码的上下文中,但潜在的问题是基本的TS。

  • 我正试图安装一个PostgreSQL docker化服务,与plpython。我能够成功地构建映像,但是当我来运行容器时,我得到以下错误: 错误:无法打开扩展控制文件"/usr/share/postgresql/9.5/扩展/plpython3u.control":没有这样的文件或目录声明:创建扩展"plpython3u"; psql:/docker-entrypoint-initdb. d/cr

  • 问题内容: 我是编码的新手,只是学习Python。我搜索了答案,但找不到答案。 我正在尝试制作一个用于学习目的的计算器,但无法使底部扩展或内部扩展以匹配根窗口的边界 这是我的代码: 这是我的计算器当前的图像: 如何制作和调整大小以匹配根窗口的边框? 问题答案: 问题 :Tkinter按钮使用网格扩展 TkDocs:网格几何管理器处理大小调整 您只配置增长: 如果有多余的空间 ,您还必须配置框架以使