用C++语言如何判断你的系统是64位的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C++语言如何判断你的系统是64位的相关的知识,希望对你有一定的参考价值。

参考技术A 上面都没考虑编译器的限制
64位系统一样可以使用32位编译器

而且就算是64位编译器也可能为了保持兼容性使用半字长来存储整数

要调用windows api的

#include <windows.h>
#include <stdio.h>

BOOL IsWow64()

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle(L"kernel32"),"IsWow64Process");
if (NULL != fnIsWow64Process)

if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))

return FALSE;
else
return TRUE;

return bIsWow64;

参考资料:http://blog.sina.com.cn/s/blog_4e0c21cc0100gj6d.html

参考技术B #include "stdio.h"

void main()

printf("%X", 7777777777777777777);//输一个能存下的超大数


若输出有16位是64位机
参考技术C #include<stdlib.h>
#include<iostream>
#include<stdio.h>

void main()

std::cout<<"您用的是"<<
8*sizeof(int)<<"位系统"<<std::endl;
system("pause");

c语言如何判断输入的字符串是不是有汉字

参考技术A 这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。
那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.

例如:汉字“啊”的汉字机内码为B0A1H
表示成双字节是这样的10110000 10100001

本程序用的就是判断最高位的方法。

int is_zh_ch(char p)


if(~(p >> 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节。

return 0; //代表不是汉字


return -1;
本回答被提问者和网友采纳

以上是关于用C++语言如何判断你的系统是64位的的主要内容,如果未能解决你的问题,请参考以下文章

如何在64位的Linux系统上使用汇编和C语言混

从原生 C++ 重构代码位的选项?

C语言在64位系统上怎样编辑运行?

C++中标志位的几种实现方法

如何系统地学习 C++ 语言从开发环境到C++进阶,应该怎么办?

我的C/C++语言学习进阶之旅 通过C++跨平台的预编译宏来区分不同的操作系统:Win32/Win64/Unix/Linux/MacOS/iOS/Android等