¿Cómo puedo saber si mi procesador es de 32 bits o de 64 bits (en el idioma de su elección)? Quiero saber esto para los procesadores Intel y AMD.¿Cómo puedo saber si mi CPU tiene 32 o 64 bits?
Respuesta
de Windows, C/C++:
#include <windows.h>
SYSTEM_INFO sysInfo, *lpInfo;
lpInfo = &sysInfo;
::GetSystemInfo(lpInfo);
switch (lpInfo->wProcessorArchitecture) {
case PROCESSOR_ARCHITECTURE_AMD64:
case PROCESSOR_ARCHITECTURE_IA64:
// 64 bit
break;
case PROCESSOR_ARCHITECTURE_INTEL:
// 32 bit
break;
case PROCESSOR_ARCHITECTURE_UNKNOWN:
default:
// something else
break;
}
¿Puede especificar qué idioma es (sí, * I * pero otros no) y otros requisitos (por ejemplo, archivos de encabezado)? – paxdiablo
O, para el caso, ¿qué sistema operativo? ¿Funcionará esto en mi Mac Mini, mis cajas Linux y mis sistemas Windows XP y Vista? –
Bah - no puedo editar ... pero entonces * necesito * agregar el 'predeterminado' a ese interruptor ... :-) –
que estaba pensando, en un procesador de 64 bits, los punteros son de 64 bits. Entonces, en lugar de verificar las características del procesador, tal vez sea posible usar punteros para 'probarlo' programáticamente. Podría ser tan simple como crear una estructura con dos punteros contiguos y luego verificar su "zancada".
No, no ayudará con el código de 32 bits que se ejecuta en un procesador habilitado para 64 bits. – mghie
C#, OS agnóstico
sizeof(IntPtr) == 4 ? "32-bit" : "64-bit"
Esto es algo tosco pero básicamente le indica si el CLR se ejecuta como de 32 bits o 64 bits, lo que es más probable que lo que se necesita saber. El CLR puede ejecutarse como 32 bits en un procesador de 64 bits, por ejemplo.
Para obtener más información, ver aquí: How to detect Windows 64-bit platform with .NET?
el truco aquí es que podría tener una CPU de 64 bits, pero un sistema operativo de 32 bits. Si te preocupa ese caso, va a necesitar un asm para interrogar a la CPU. De lo contrario, puede solicitar el sistema operativo fácilmente.
VBScript, Windows:
Const PROCESSOR_ARCHITECTURE_X86 = 0
Const PROCESSOR_ARCHITECTURE_IA64 = 6
Const PROCESSOR_ARCHITECTURE_X64 = 9
strComputer = "."
Set oWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessors = oWMIService.ExecQuery("SELECT * FROM Win32_Processor")
For Each oProcessor In colProcessors
Select Case oProcessor.Architecture
Case PROCESSOR_ARCHITECTURE_X86
' 32-bit
Case PROCESSOR_ARCHITECTURE_X64, PROCESSOR_ARCHITECTURE_IA64
' 64-bit
Case Else
' other
End Select
Next
Otra posible solución para Windows Script Host, esta vez en JScript y el uso de la variable de entorno PROCESSOR_ARCHITECTURE:
var oShell = WScript.CreateObject("WScript.Shell");
var oEnv = oShell.Environment("System");
switch (oEnv("PROCESSOR_ARCHITECTURE").toLowerCase())
{
case "x86":
// 32-bit
case "amd64":
// 64-bit
default:
// other
}
En .NET se puede diferenciar x 86 x 64 de mirando la propiedad Tamaño de la estructura IntPtr. La propiedad IntPtr.Size se devuelve en bytes, 8 bits por byte, por lo que equivale a 4 en una CPU de 32 bits y 8 en una CPU de 64 bits. Como hablamos de procesadores de 32 bits y de 64 bits en lugar de procesadores de 4 bytes u 8 bytes, me gusta hacer la comparación en bits, lo que deja más claro lo que está sucediendo.
C#
if(IntPtr.Size * 8 == 64)
{
//x64 code
}
PowerShell
if([IntPtr]::Size * 8 -eq 64)
{
#x64 code
}
C# Código:
int size = Marshal.SizeOf(typeof(IntPtr));
if (size == 8)
{
Text = "64 bit";
}
else if (size == 4)
{
Text = "32 bit";
}
En Python:
In [10]: import platform
In [11]: platform.architecture()
Out[11]: ('32bit', 'ELF')
Como de costumbre, bastante limpio. Pero estoy bastante seguro de que estas funciones devuelven la plataforma donde se ha construido el ejecutor, no las plataformas en las que se ejecuta. Todavía hay una pequeña posibilidad de que algún geek ejecute una versión de 32 bits en una computadora de 64 bits.
Puede tener algunos más informaciones como:
In [13]: platform.system()
Out[13]: 'Linux'
In [19]: platform.uname()
Out[19]:
('Linux',
'asus-u6',
'2.6.28-11-generic',
'#42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009',
'i686',
'')
ETC.
Esto se parece más a datos en tiempo real :-)
Yo soy ese geek. Existe Python de 64 bits, pero es difícil conseguir módulos preconstruidos para esa arquitectura, y casi tan difíciles de obtener compilados localmente. – SingleNegationElimination
En Linux se puede determinar el "valor de bits" mediante la lectura de
/proc/cpuinfo
por ejemplo.
cat /proc/cpuinfo | grep flags
si contiene la bandera
lm
es un bit CPU x86 de 64 (incluso si tiene instalado 32 bit Linux)
No estoy seguro si esto funciona para las CPU no x86, así como PPC o ARM.
- 1. ¿Cómo saber si mi procesador tiene 32 o 64 bits en C#?
- 2. ¿Cómo puedo saber si mi aplicación se está ejecutando como una aplicación de 32 bits o de 64 bits?
- 3. Usando C#, ¿cómo saber si mi máquina es de 64 bits o 32 bits?
- 4. ¿Cómo puedo saber si mi servidor ejecuta mongodb 64 bits?
- 5. ¿Cómo puedo saber si mi instancia de Amazon EC2 es de 32 bits o de 64 bits?
- 6. ¿Cómo puedo determinar si una aplicación .NET tiene 32 o 64 bits?
- 7. ¿Cómo comprobar si una biblioteca tiene 32 bits/64 bits incorporados en Mac OS X?
- 8. ¿Cómo puede mi programa determinar si se está ejecutando en Windows de 32 o 64 bits?
- 9. ¿Cómo puedo saber si mi GCC compila 64 bits de forma predeterminada?
- 10. ¿Cómo puedo verificar si un binario compilado es de 32 bits o de 64 bits?
- 11. ¿Cómo puedo saber si mi IE es de 64 bits? (Para el caso, ¿Java también?)
- 12. uint es de 32 bits, sin importar si el sistema es de 32 o 64 bits?
- 13. ¿iPhone OS es de 64 bits o 32 bits?
- 14. Cómo comprobar si IIS está en el modo de 32 bits o de 64 bits
- 15. tamaño de la máquina 64 o 32 bits
- 16. Comprobando si el archivo es de 32 bits o de 64 bits: en Windows
- 17. Programar determinar si native .exe es de 32 bits o de 64 bits
- 18. Python: compruebe si un sistema tiene 32 o 64 bits para determinar si ejecuta la función o no.
- 19. ¿Aplicación de 32 bits o de 64 bits en el sistema operativo de 64 bits?
- 20. ¿Cómo puedo saber si mi servidor tiene NUMA?
- 21. Qué comando usar para comprobar si python es de 64 bits o de 32 bits
- 22. Determine si el proceso actual de PowerShell es de 32 bits o de 64 bits.
- 23. 64 bits por división de 32 bits
- 24. Cómo saber si Octave tiene acceso completo al rango de memoria de 64 bits
- 25. Elegante y segura manera de determinar si la arquitectura es de 32 bits o 64 bits
- 26. conversión de aplicación .NET 32 bits a 64 bits
- 27. Importar archivos dll externos basados en sistemas operativos de 64 bits o 32 bits
- 28. Cómo saber si un alojamiento compartido se está ejecutando 32 o 64 bit - con php
- 29. Proyecto de iPhone tiene "Mi Mac de 64 bits"
- 30. Diferencia entre "Mi Mac de 32 bits" y "Mi Mac de 64 bits" en Xcode 4?
Tendrás que proporcionar al menos el idioma en el que intentas encontrar esta información en – JaredPar
Esto no parece una pregunta de programación. –
No, no es una pregunta de programación. debe cerrarse –