标签: 32-bit

Java 64位的性能是否优于32位版本?

我注意到Sun提供了64位版本的Java.它的性能是否优于32位版本?

java 64-bit 32-bit

16
推荐指数
2
解决办法
2万
查看次数

32位有符号整数的最小值是多少?

32位有符号整数的最小值是什么,恰好是在[本网站]创建帐户的安全性"挑战"问题(编辑:链接现在是恶意软件)(不要判断我只是好奇和无聊).

我以为他们说的是一个典型的32位int,它可以存储大到的数字2,147,483,647.但是,当我尝试-2147483647它时,我说错了.我尝试了几种变体,-2,147,483,647但没有任何作用......

我是否误解了这个问题,或者网站有什么问题吗?

PS我也按照建议尝试了-2,147,483,648

这是一张照片 在此输入图像描述

int signed 32-bit minimum

16
推荐指数
2
解决办法
8万
查看次数

类未注册错误

在64位计算机上从Visual Studio 2012运行应用程序,显示以下错误消息:

检索具有CLSID {F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B}的组件的COM类工厂由于以下错误而失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))

我在visualstudio中使用Inventor packandgo dll库.

任何人都知道错误是什么?

com dll 64-bit 32-bit visual-studio-2012

15
推荐指数
4
解决办法
8万
查看次数

在 32 位机器上,当我不将其结果存储在变量中时,atan2 是不确定的。为什么?

考虑这段 C 代码:

#include <math.h>
#include <stdbool.h>
#include <stdio.h>

bool foo(int a, int b, int c, int d) {
    double P = atan2(a, b);
    double Q = atan2(c, d);
    return P < Q;
}

bool bar(int a, int b, int c, int d) {
    return atan2(a, b) < atan2(c, d);
}

int main() {
    if (foo(2, 1, 2, 1)) puts("true"); else puts("false");
    if (bar(2, 1, 2, 1)) puts("true"); else puts("false");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我用 编译它时gcc -lm -m64,它会打印

false …
Run Code Online (Sandbox Code Playgroud)

c c++ floating-point 32-bit ieee-754

15
推荐指数
0
解决办法
208
查看次数

32位Intel处理器上的内存对齐

Intel的32位处理器(如Pentium)具有64位宽的数据总线,因此每次访问可获取8个字节.基于此,我假设这些处理器在地址总线上发出的物理地址总是8的倍数.

首先,这个结论是否正确?

其次,如果它是正确的,那么应该将数据结构成员对齐在8字节边界上.但我见过人们在这些处理器上使用4字节对齐.

他们怎么能这样做呢?

memory x86 32-bit intel alignment

14
推荐指数
2
解决办法
2万
查看次数

使用64位llvm-gcc构建32位

我有一个64位版本的llvm-gcc,但我希望能够构建32位和64位二进制文​​件.这有旗帜吗?我尝试传递-m32(适用于常规gcc),但我收到如下错误信息:

[jay@andesite]$ llvm-gcc -m32 test.c -o test
Warning: Generation of 64-bit code for a 32-bit processor requested.
Warning: 64-bit processors all have at least SSE2.
/tmp/cchzYo9t.s: Assembler messages:
/tmp/cchzYo9t.s:8: Error: bad register name `%rbp'
/tmp/cchzYo9t.s:9: Error: bad register name `%rsp'
...
Run Code Online (Sandbox Code Playgroud)

这是倒退; 我想为64位处理器生成32位代码!

我正在运行llvm-gcc 4.2,这是Ubuntu 9.04 x86-64附带的.


编辑:当我使用-v标志运行llvm-gcc时,这是输出的相关部分:

[jay@andesite]$ llvm-gcc -v -m32 test.c -o test.bc
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../llvm-gcc4.2-2.2.source/configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr/lib/llvm/gcc-4.2 --enable-languages=c,c++ --program-prefix=llvm- --enable-llvm=/usr/lib/llvm --enable-threads --disable-nls --disable-shared --disable-multilib --disable-bootstrap
Thread model: posix
gcc version …
Run Code Online (Sandbox Code Playgroud)

64-bit 32-bit llvm 32bit-64bit llvm-gcc

14
推荐指数
1
解决办法
2万
查看次数

在没有找到模块的32位机器上,.NET 4.0中的SetWindowsHookEx失败了吗?

我在这个页面上发现了类似的问题,但我似乎无法弄清楚如何解释答案或弄清楚它们是否真的重复.

以下是我发现的可能重复项,并附有评论:

Hans Passant对最后一个删除答案的评论如下:

你在使用.NET 4.0吗?它的CLR改变了程序集的加载方式,不再有LoadLibrary调用,也没有模块句柄.使用GetEntryAssembly()代替另一种修复. - 汉斯帕斯特5月5日19:43

那么,这里的字是什么?你在使用.NET 4.0吗?您是否尝试使用LoadLibrary("user32.dll")来获取可用的DLL句柄? - Hans Passant 5月6日15:43

我很确定我不需要这样做,但显然我不是百分百肯定.如果我需要更改它,我留下的问题是,为什么它适用于64位操作系统,在编译时Any CPU,但在任何配置中都不适用于32位.

如果加载.NET程序集确实发生了一些变化,那么我没有得到类库的正确句柄,我有以下问题:

  • 有没有什么方法可以欺骗我做我想要的,而不必降级到.NET 3.5或将钩子库更改为不受管理?
  • 为什么它在64位操作系统上运行时有效,而在32位运行时无效?

背景

我在.NET 4.0中构建了一个程序,它使用带有WH_KEYBOARD_LL钩子类型的SetWindowsHookEx来捕获按键.这在我的64位Windows 7上运行良好,但在32位Windows 7上安装键盘挂钩时崩溃时出现"找不到模块".

这是我尝试过的:

  • 编译为x86,在64位操作系统上运行,崩溃时出现"找不到模块"
  • 编译x86,在32位操作系统上运行,崩溃
  • 编译任何CPU,在64位操作系统上运行,运行良好
  • 编译任何CPU,在32位操作系统上运行,崩溃
  • 切换到.NET 3.5并重复上述四种情况,它们都有效

我宁愿不将我的代码切换到.NET 3.5,因为我使用了一些类库来简化工作,而最新的代码只在.NET 4.0中.

如果需要,可以下载包含Visual Studio 2010项目的.ZIP文件,也可以粘贴以下两个文件.

要重新创建是否要沿着该路线前进:

  1. 创建一个新的控制台项目.NET 4.0
  2. 添加另一个类库项目,也就是.NET 4.0
  3. 从控制台程序项目添加对类库项目的引用
  4. 将下面的Program.cs内容粘贴到控制台项目中的Program.cs文件中
  5. 将下面的Hook.cs内容粘贴到类库项目中的文件中.您可以将其粘贴到Class1.cs默认文件中,或添加另一个文件.你不能把它放到控制台项目中

然后构建并运行,测试各种配置.

Program.cs中

using System;
using HookLib;

namespace HookTest
{
    class Program
    {
        static void Main() …
Run Code Online (Sandbox Code Playgroud)

64-bit 32-bit .net-4.0 .net-3.5 setwindowshookex

14
推荐指数
1
解决办法
5092
查看次数

如何找出Tomcat在窗口服务器上是32位还是64位?

我们有一个安装Tomcat的安装程序.我如何知道它是32位版本的Tomcat还是64位版本?

architecture 64-bit tomcat 32-bit

14
推荐指数
1
解决办法
4万
查看次数

64位机器上的32位或64位虚拟机速度更快(vmware)

我有64位主机操作系统的64位主机.我想安装一个虚拟机(1GB或更小的RAM),但我不知道哪个会显示更好的性能.我听说64位硬件/软件的唯一优势是每个进程可以处理超过2 GB的内存,而且它实际上比32位慢.

因此,最好安装32位guest虚拟机操作系统/操作系统或64位.

我认为我将运行的软件是32位,所以无论如何它都会运行/不运行/使用32位库.但是,如果我有64位版本的软件怎么办?

vmware 64-bit 32-bit

14
推荐指数
1
解决办法
2万
查看次数

从32位应用程序创建64位注册表项(非WOW64)

我有一个Visual Studio安装程序,正在创建一些注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
Run Code Online (Sandbox Code Playgroud)

但它正在创建的注册表项自动出现在Wow6432Node下:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyApp
Run Code Online (Sandbox Code Playgroud)

在msi执行的C#代码中创建注册表项时,如何忽略Wow6432Node?

registry 64-bit windows-installer 32-bit wow64

13
推荐指数
1
解决办法
9176
查看次数