32位,64位操作系统下基本数据类型字节大小

c语言中基本数据类型的长度:

32位下:

char :1个字节(不变)

*(指针变量): 4个字节(32位机的寻址空间是4个字节。同理64位编译器)(变化)

short int : 2个字节(不变)

int: 4个字节(不变)

unsigned int : 4个字节(不变)

float: 4个字节(不变)

double: 8个字节(不变)

long: 4个字节(变化)

unsigned long: 4个字节(变化*,其实就是寻址控件的地址长度数值)

long long: 8个字节(不变)

64位下:

char     1个字节(不变)

*(指针变量): 8个字节

short int : 2个字节(不变)

int: 4个字节(不变)

unsigned int : 4个字节(不变)

float: 4个字节(不变)

double: 8个字节(不变)

long: 8个字节(变化)

unsigned long: 8个字节(变化*其实就是寻址控件的地址长度数值)

long long: 8个字节(不变)

除了*与long随操作系统子长变化而变化外,其他的都固定不变(32位和64相比)

bool 1个字节  char 1个字节      int 4个字节   float 4个字节       doubl 8个字节   long long 8个字节

oc中:

64位系统下(本机不是32位系统的没法测试):

nsstring    8位

nsinteger  8位(有符号的)

NSUInteger  8位(无符号的,没有负数)

在oc中很多变量事实上是指针,所以64位系统下很多都是8位的,

顺便提下nsnumber,NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray或者

NSMutableDictionary里存储一个数值,直接用NSInteger是不行的,要先转换成nsnumber类,

本文参考了http://blog.csdn.net/totogo2010/article/details/7655908

时间: 2024-08-04 17:07:38

32位,64位操作系统下基本数据类型字节大小的相关文章

16位 32位 64位操作系统下只有long 和指针占用的位数不同

(1)16位平台 char         1个字节8位 short        2个字节16位 int             2个字节16位 long         4个字节32位 指针         2个字节16位 (2)32位平台 char         1个字节8位 short        2个字节16位 int             4个字节32位 long         4个字节32位 long long    8个字节64位 指针         4个字节32位 (

在32位、64位操作系统下各数据类型所占的字节数

点击打开链接 在32位.64位系统当中,唯一改变的是指针的长度;在32位系统当中是4个字节.64位则是8个字节.所谓的32位.64位,这个指的是寄存器的位宽. 32位平台下结果: 64位平台下结果: 一.下面几点是值得大家注意的: 1.关于 int 的取值范围,缺省的int数值范围是由编译器设计者决定的,通常都是机器最为自然高效的位数.甚至,我们在32位的机器上,前提没有什么指令可以高效的的处理更短的整型值,我们可以将short.int.long都设置成32位. 2.浮点数在缺省的情况下 表示的

转 32位64位操作系统基本数据类型字节大小

http://blog.csdn.net/huyisu/article/details/17604983 int型字长问题: ① C/C++规定int字长和机器字长相同: ② 操作系统字长和机器字长未必一致: ③ 编译器根据操作系统字长来定义int字长: 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致:有操作 系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:" 比如你在64位机器上运行DOS16系统,那么所有fo

32位64位操作系统基本数据类型字节大小

nt型字长问题: ① C/C++规定int字长和机器字长相同: ② 操作系统字长和机器字长未必一致: ③ 编译器根据操作系统字长来定义int字长: 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致:有操作 系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:" 比如你在64位机器上运行DOS16系统,那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上 运行win32系统,那么所有for w

Installshield 64位操作系统下拷贝文件,如何重定向到32位的系统文件夹下

原文:Installshield 64位操作系统下拷贝文件,如何重定向到32位的系统文件夹下 64位操作系统下拷贝文件重定向问题,在在复制代码前加上Disable(WOW64FSREDIRECTION);就可以解决64位系统默认复制到syswow64的问题 但是注意: Disable(WOW64FSREDIRECTION);         CopyFile( SUPPORTDIR^"MUCam32.dll", WINSYSDIR^"MUCam32.dll"); 是

64位操作系统下用Microsoft.Jet.OLEDB.4.0出现未注册错误

在WIN7 64位下用Microsoft.Jet.OLEDB.4.0方法访问数据库Access,出现未注册错误 如果是要建立64位的应用程序 1.Microsoft Access Database Engine 2010 Redistributable http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D 2.原来连接:Provider=Microso

64位操作系统下IIS报“试图加载格式不正确的程序”错误

缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误. 原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的.不能混编访问.不然会出现“试图加载格式不正确的程序”的错误. 解决方法: [C/S] 运行C/S程序比较简单,直接在Build C/S程序的时候显式指定为X86(64位系统默认为X64)就可以了. [B/S] 运行B/S稍稍复杂点.在建立网站的时候,又分为两种情况. A:建立的是“项目”:这个时候跟 C/S 的处理是

32位与64位操作系统到底有什么区别呢?

  区别一,设计初衷不同.64位操作系统的设计初衷是:满足机械设计和分析.三维动画.视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求.换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台.而32位操作系统是为普通用户设计的. 区别二,要求配置不同.64位操作系统只能安装在64位电脑上(CPU必须是64位的).同时需要安装64位常用软件以发挥64位(x64)的最佳性能.32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上

MySQL学习2:Windows 64位操作系统下安装和配置MySQL

一安装方式 MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的.下面来看看这两种方式: MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,Windows操作系统下一般MySQL将会安 装在C:\Program Files\MySQL该目录中. ZIP格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置.这个可以在网上随便找,给出很 多自定义安装和配置的详细步骤.推荐的链接:http://jingyan.baidu.com/article/f79b7cb3