精华内容
下载资源
问答
  • 数据类型对应字节

    千次阅读 2011-02-09 11:36:00
    不同的平台上对不同数据类型分配的字节数是不同的,本文列举了常用数据类型在32位和64位下对应字节

    文章转自:http://www.cnblogs.com/augellis/archive/2009/09/29/1576501.html

    一、程序运行平台
          不同的平台上对不同数据类型分配的字节数是不同的。
          个人对平台的理解是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个字节

    展开全文
  • 在做关于一些文件读取工作时,往往会遇到一些字符... 不同的平台上对不同数据类型分配的字节数是不同的。  个人对平台理解是CPU+OS+Compiler,是因为:  1、64位机器也可以装32位系统(x64装XP);  

    在做关于一些文件读取的工作时,往往会遇到一些字符的大小读写处理的问题,这里我转载了某篇文章里面对字符所占字节的说明,觉得对自己在读写程序那块的帮助很大,和大家分享下

    一、程序运行平台
          不同的平台上对不同数据类型分配的字节数是不同的。
          个人对平台的理解是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个字节

    展开全文
  • 不同的平台上对不同数据类型分配的字节数是不同的,而平台是由处理器,操作系统及编译器才能决定。 类型 32位编译器 64位编译器 char 1个字节 1个字节 char* 4个字节(32位寻址空间是2^32, ...

     

    不同的平台上对不同数据类型分配的字节数是不同的,而平台是由处理器,操作系统及编译器才能决定的。 

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

    8个字节

    unsigned long  4个字节    8个字节

    结构体是一种复合数据类型,通常编译器会自动的进行其成员变量的对齐,已提高数据存取的效率。在默认情况下,编译器为结构体的成员按照自然对齐(natural alignment)条方式分配存储空间,各个成员按照其声明顺序在存储器中顺序存储。自然对齐是指按照结构体中成员size最大的对齐,在cl编译器下可以使用这个函数来指定结构体的对齐方式。

    #pragma pack(n)

     

      

     

     

     










     

    展开全文
  •  不同的平台上对不同数据类型分配的字节数是不同的。   个人对平台理解是CPU+OS+Compiler,是因为:   1、64位机器也可以装32位系统(x64装XP);   2、32位机器上可以有16/32位编译器(XP上有tc是16位...

    数据类型对应字节数(32位,64位 int 占字节数)

    一、程序运行平台 
          不同的平台上对不同数据类型分配的字节数是不同的。 
          个人对平台的理解是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个字节 

    展开全文
  • 一、程序运行平台不同的平台上对不同数据类型分配的字节数是不同的。个人对平台理解是CPU+OS+Compiler,是因为:1、64位机器也可以装32位系统(x64装XP);2、32位机器上可以有16/32位编译器(XP上有tc是16位...
  • 一、程序运行平台 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位编译器(XP上有tc...
  • 32位和64位系统区别及不同数据类型字节数 ... 不同数据类型的字节数2.1 程序运行平台2.2 常用数据类型对应字节数 1. 64 位系统和 32 位有什么区别? 64bit CPU 拥有更大寻址能力,理论上可以支持 12...
  •  不同的平台上对不同数据类型分配的字节数是不同的。   个人对平台理解是CPU+OS+Compiler,是因为:   1、64位机器也可以装32位系统(x64装XP);   2、32位机器上可以有16/32位编译器(...
  • 2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件基础上。   什么是64位处理器? 之所以叫做“64位处理器”,是因为电脑内部都是实行2...
  •  不同的平台上对不同数据类型分配的字节数是不同的。   个人对平台理解是CPU+OS+Compiler,是因为:   1、64位机器也可以装32位系统(x64装XP);   2、32位机器上可以有16/32位编译器(XP上有tc是16...
  • 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位编译器(XP上有tc是16位,其他...
  • 如果你看了之前的文章相信你已经有些概念了,这里的文档不是指 Word、PDF 这样的文档,而是类似 JSON(JavaScript Object Notation) 的对象,由不同的键以及对应的值组成,它的名字是 BSON(Bin­ary JSON)。...
  • 数据类型解决了“取(读)”的问题:它改变了看待内存空间的视角,比如在内存中同样的两块4个字节的空间,存放着同样的二进制码,如果这两块内存对应的两个变量类型不一样,那么它们的意义也就不一样了。...
  • SQL SERVER、Access、C#数据类型详解及对应表 SQL SERVER数据类型 ...存储不同数据类型的值     Object null int 整数值,用4个字节来存储 长整型、自动编号       bigint

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 383
精华内容 153
关键字:

不同字节对应的数据类型