【转】数据类型对应字节数

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

时间: 2024-12-29 06:47:38

【转】数据类型对应字节数的相关文章

32位机和64位机的区别及基本数据类型占字节数

一)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的倍数.一次处理的数据越大,该电

8种基本数据类型及其字节数

数据类型 关键字 字节数 数值型 整数型 byte 1 short 2 int 4 long 8 浮点型 float 4 double 8 布尔型   boolean 1(位) 字符型   char 2

常用数据类型对应字节数

一.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个

常用数据类型对应字节数,int长度

常用数据类型对应字节数: 这两台机器,前者32位,后者64位,测试了以下数据类型的长度: 前者: int:4,long:4,long long:8 后者: int:4,long:8,long long:8 不是说int会变吗,为何变得是long? 还有如果要写个通用的程序,订死必须用4个或8个字节的数据类型,在不需要重新编码编译的前提下,该如何处理这种变化? 谢谢指教.. 2楼 发表于 2008-4-15 09:35 QUOTE: 原帖由 maxxfire 于 2008-4-15 09:28 发

java中各种数据类型占用字节数

1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字符是不一样的,并且与编码有关 英文字母:A 字节数 编码 1 GB2312 1 GBK 1 GB18030 1 ISO-8859-1 1 UTF-8 4 UTF-16 2 UTF-16BE 2 UTF-16-LE 中文汉字:我 字节数 编码 1 GB2312 2 GBK 2 GB18030 1 IS

c#笔记(十六)——基本数据类型的字节数

https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx 1.int类型 4字节  32位整型   uint 无符号整型 unsigned 2. 单精度浮点数(float)4字节    后面加f,例如:23.5f,23f 3.双精度浮点数(double)8字节 后面加d 也可不加,例如:23.5,14.7d 4.128位高精度浮点数(decima) 16字节 后缀m ,例如:15.67m,它的取值范围上面两种浮点类型小,但精确度最高. 5.字符

C++基本数据类型占字节数

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

keil_4/MDK各种数据类型占用的字节数

笔者正在学习uCOS-II,移植到ARM时考虑到数据类型的定义,但对于Keil MDK编译器的数据类型定义还是很模糊,主要就是区分不了short int.int.long 和long int占用多少字节.为了得到一个权威的答案,改用编译器自身得出. 一.先定义几个变量,用于存放各数据类型的字节数. //#include<LPC214x.H> #include<stdio.h> unsigned char a,b,c,d,e,f,g; main() { a=sizeof(char);

转:C/C++基本数据类型所占字节数

参考:http://blog.csdn.net/vast_sea/article/details/8076934 关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器.OS.编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节:而tuborC下则是2个字节. 所以int,long int,short int的宽度都可能随编译器而异.但有几条铁定的原则(ANSI/ISO制订的): sizeof(sho