32位和64位程序的区别

news/2024/12/22 18:13:16/

转自:https://blog.csdn.net/nma_123456/article/details/45077345

由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件,此处以VS为例。

1、编译程序根据需要选择不同的编译环境:

X86和win32位32位程序,X64为64位程序,可以选择不同的编辑条件形成不同位的软件。

2、代码中的基本的数据类型,会根据操作系统的位数分配内存大小:
如int型在32位操作系统为4字节,在64位系统为8字节

因此在64位上对int型数据操作,编译生成32的程序,有可能导致int型越界,软件出现问题

3、32位的程序在64位操作系统上运行,由于64位操作系统的寻址和偏移的问题,也有可能导致程序在运行过程中,计算结果与32位系统不一致

4、64位操作系统理论上能够兼容32位和64位软件,32位操作系统不能运行64程序

5、使用VS2010或VS2012开发的程序,强制编译为32位软件,在xp系统下运行有问题,有可能与.net framework版本有关系,低版本的framework不能支持高版本framework的一些控件或类库。尝试安装高版本的framework解决问题

借用一下博客内容:

一)64位系统和32位有什么区别? 

1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存

2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。

 

什么是64位处理器?

之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数。8位处理器、16位处理器、32位处理器和64位处理器,其计数都是2的倍数。一次处理的数据越大,该电脑处理信息的能力越来越大;因此64位处理在先天就比32位处理器具有快速的能力。那为什么不用更高级的128位处理器呢?因为位数越高,处理器芯片的设计也就越复杂,目前的技术水平暂时无法制造这么复杂的芯片。

 

64位处理器之失

※硬件———缺乏驱动程序,很多现有硬件无法使用

※软件———操作系统不是问题,但是软件出现不兼容难题

 

64位处理器之得

※硬件———更快的执行速度,更大的内存管理

※软件———最新的尖端软件首先出现在64位平台

 

(二)数据类型对应字节数

程序运行平台
      不同的平台上对不同数据类型分配的字节数是不同的。
      个人对平台的理解是CPU+OS+Compiler,是因为: 
      1、64位机器也可以装32位系统(x64装XP); 
      2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的); 
      3、即使是32位的编译器也可以弄出64位的integer来(int64)。 
      以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。 
      虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。 
      理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。

常用数据类型对应字节数
  可用如sizeof(char),sizeof(char*)等得出

 32位编译器:

      char :1个字节
      char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
      short int : 2个字节
      int:  4个字节
      unsigned int : 4个字节
      float:  4个字节
      double:   8个字节
      long:   4个字节
      long long:  8个字节
      unsigned long:  4个字节

  64位编译器:

      char :1个字节
      char*(即指针变量): 8个字节
      short int : 2个字节
      int:  4个字节
      unsigned int : 4个字节
      float:  4个字节
      double:   8个字节
      long:   8个字节
      long long:  8个字节
      unsigned long:  8个字节




http://www.ppmy.cn/news/491929.html

相关文章

计算机操作系统32跟64区别是什么,32位和64位的区别 怎样区分电脑操作系统32位和64位...

32位的操作系统最多支持4G的内存,64位系统则可以支持128G甚至更大;在处理数据的能力上64位的系统上比32位系统快一倍;32位的电脑只能运行32位的软件,而64位的电脑可以运行32位的软件也可以运行64位的软件;然后32位电脑只能支持32位的系统,但是…

32位操作系统和64位操作系统的区别

文章目录 一、32位和64位的关系二、32位和64位的“位”是什么三、32位和64位操作系统的区别1、支持的系统不同2、运行数据的速度不同3、支持内存大小不同4、软件5、系统体积大小不同 一、32位和64位的关系 32位和64位指的是处理器 CPU,32位处理器每次最多能处理32位…

Win7 64位系统安装 Windows XP 虚拟机

1.首先下载2个文件 Windows6.1-KB958559-x64-RefreshPkg和WindowsXPMode_zh-cn 这2个文件在微软官方网搜索即可下载。 2.安装Windows6.1-KB958559-x64-RefreshPkg 补丁 双击Windows6.1-KB958559-x64-RefreshPkg 补丁 然后选择接受条款,安装 安装完成后选择立即重…

64位操作系统和32位的区别介绍【详解】

众所周知,windows系统有32位和64位,但不同的是什么?什么样的电脑装什么版本的呢?下面小七就简单的来讲一下两者的区别。 一:支持的内存不同 32位的操作系统,最多支持4G的内存,实际内存为3.25G&…

64位计算机可以安装xp,64位xp系统如何安装【图解】

导读:计算机已经越来越受到我们的重视了,因为我们的生活方方面面都离不开计算机。不管我们是学习或者是娱乐,似乎计算机都可以很好的为我们服务。有一些计算机的爱好者还学会了自己进行系统的安装。对于操作系统的安装其实相对较为简单。目前…

如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) 。 For computer or PC that has been installed lo…

xp 64位系统下载

http://www.ctdisk.com/directlink/75519/win/64.rar 只集成了 部分 主流 AHCI 驱动。如果封装完毕进系统蓝屏。请进BIOS 更改 AHCI 模式为IDE模式 其它硬件驱动未集成。装系统前。请自己先下载好自己机子要用的驱动 软件集成: 集成: IE8 64 位 32位 中文官方版本 集成: OF…

32位 和 64位系统区别

1. 32位系统CPU一次可处理32位数据,即一次处理4个字节。 64位系统CPU一次可处理64位数据,即一次处理8个字节。 通俗一点说: 32位,就相当于你拥有32个工人,每次能完成32个工人的工作量 64位…