问题标签 [32bit-64bit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
64-bit - 64位/32位的低级优缺点是什么?
我敢肯定我们都听说过 64 位和 32 位这两个术语,但它们的真正含义是什么?
我很确定它们与内存地址的大小有关。在 64 位机器上,对对象的引用是 64 位的。但我想更深入地挖掘......
人们经常听到“64 位机器”一词。计算机的哪一部分实际上是针对位数的?处理器?操作系统?
拥有更大的内存地址有什么好处?
我可以添加更多问题,但我认为简短更好。
谢谢大家 :D
64-bit - 处理器、操作系统:32 位、64 位
我是编程新手,来自非 CS 背景(没有正式学位)。我主要使用 C# 编写 winforms。
我对 32 位和 64 位感到困惑……我的意思是,听说过 32 位操作系统、32 位处理器以及基于它的程序可以拥有最大内存。它如何影响程序的速度。还有更多的问题不断浮现在脑海。
我试图通过一些计算机组织和架构书籍。但是,要么我太笨,无法理解其中的内容,要么作者认为读者有一些 CS 背景。
有人可以用简单的英语向我解释这些事情,或者向我指出可以做到这一点的东西。
编辑:我读过类似 In 32-bit mode, they can access up to 4GB memory; 在 64 位模式下,他们可以访问更多……我想知道为什么要访问所有这些东西。
赏金:下面的答案真的很好......尤其是马丁的一个。但是,我正在看一个彻底的解释,但用简单的英语。
macos - Snow Leopard (OS X 10.6) 中的 InputManager 插件
我收到来自不同地方的相互矛盾的报告。Engadget 的评论说 InputManager 插件被完全忽略(如果应用程序以 32 位模式加载会导致奇怪的行为),但这个邮件列表线程说如果 32/64 位兼容性正确,它们将工作。
所以我有两个问题:
- 我们可以在 Snow Leopard 中使用 InputManagers 吗?
- 如果是,它的工作方式是否与 Leopard 相同。如果不是,有什么好的解决方法(因为 1Password 显然正在修复)?
macos - Mac Pro 64 位寻址内核
我想知道我正在开发的应用程序和 64 位寻址。我想在 Mac Pro 上使用大约 12 GB 的 32 GB。
事情是这样的,我的 Mac Pro(efi 32 位)上的 Snow Leopard 中的内核不是 64 位的。我想知道,即使内核只有 32 位,我是否能够解决每个应用程序 > 4GB 的内存。
它基本上用于地图数据,大约 12 GB,我希望它运行得快……没有页面交换。
谢谢您的帮助
后来...
algorithm - 在不使用 64 位 int 的情况下将两个 32 位数字相乘
我们正在使用以下算法进行一些 32 位 * 32 位乘法运算
让我们想将 a(32 位)与 b(32 位)相乘,两者都有符号,
a = ah * 2^16 + al [ah - 高 16 位,al - 低 16 位]
b = bh * 2^16 + bl [bh - 高 16 位,bl - 低 16 位]
我们正在有效地做
结果 = (al * bl) + (((ah * bl) + (al * bh)) * 2^16) + ((ah * bh) * 2 ^ 32) ~~~
我的问题,
他们有更好的方法吗?
macos - 使胖二进制文件更喜欢在 64 位 OS X 10.6 上成为 32 位的正确方法?
假设我问用户“你想在 32 位模式还是 64 位模式下运行”,他们选择了 32 位。我如何在操作系统中注册这个事实?我已经查看了arch命令,但我不想编写一个包装二进制文件的脚本。我怀疑有一种 plist-y 方法可以做到这一点,但我找不到文档(除了拱门)。
windows - 为什么没有 64 位版本的 R for Windows?
为什么 R 没有 64 位 Windows 预构建的二进制文件?
msbuild - MS Build & Cruise Control - 将项目中的引用从 32 位版本替换为 64 位版本
我有一个解决方案,其中包含一个引用创建 PDF 文件的库的项目。PDF 库有 32 位版本和 64 位版本。在开发过程中,项目引用了 32 位版本。
我正在32位机器上开发。每次我将某些内容检入源代码控制时,我都会让 Cruise Control 触发构建。构建服务器是 32 位机器。
不幸的是,代码还必须部署到 64 位机器上。我的所有代码都在 64 位机器上进行了管理并运行良好,所以正是这个 PDF 库导致了问题。
我想我需要创建一个 Cruise Control 项目,该项目在签入时打开项目文件,将 32 位 PDF DLL 的引用替换为对 64 位版本的引用,然后执行构建(Creating a build ready for 64 位机器)。
有没有人对这样做的最佳方法有任何建议?我最初的计划是创建一个预构建步骤,例如:
[prebuild] [exec] [baseDirectory]E:\Dev\CommonCode[/baseDirectory] [executable]Replace32DllWith64Dll.cmd[/executable] [/exec] [/prebuild]
哪个运行 .cmd 文件来进行替换,但我不知道如何将 cmd 文件放在一起,并且不确定这是否会起作用......也许有一种更标准的方式来做这种事情?
任何指针将不胜感激......
谢谢,
保罗
programming-languages - 高级语言的案例:64 位还是 32 位?
随着 OS X 10.5.7 的发布,有很多关于 64 位应用程序与 32 位应用程序的讨论......必须转换应用程序的制造商,很快就无法转换的制造商由于缺乏资源(这显然是一笔巨大的交易)等。转换某个应用程序(如iTunes)的好处是什么,等等......
我想知道,当您在 VM(我的意思是 .Net Framework 或 JVM)中运行并且仅在“托管代码”中编码(在 Java 中,没有 JNI,不确定这在 Ruby 中会是什么)时:
- 当您的 VM 变为 64 位时,您是否获得了好处,而不必自己了解这些东西?或者
- 你真的没有得到好处(也没有转换的麻烦),因为你的应用程序与可能的相比效率很低(尽管可能足够快来完成你需要的事情)?
c - 在 32 和 64 平台上使用 sizeof 的 printf:如何以独立于平台的方式处理格式代码?
我有一些代码可以打印程序使用的内存量。该行与此类似:
其中 anIntVariable 是双精度数组元素数量的 int 变量。无论如何,在 32 位系统上我从来没有遇到过任何问题,但在 64 位系统上,我收到一个编译器警告,提示我将“%u”用于无符号长整数。使用“%lu”作为格式代码修复了 64 位上的问题,但会导致编译器在 32 位上报错,因为类型恢复为 unsigned int。我发现,确实,sizeof(double) 在 32 位和 64 位系统上返回不同的值。我找到了一些网页指南,可以将代码从 32 位转换为 64 位,但我更希望代码可以同时在两者上运行,而不仅仅是来回转换。
如何以独立于平台的方式编写此行?我知道很多方法可以使用预处理器指令来做到这一点,但这似乎是一种 hack。当然,我没有意识到一种优雅的方式。