首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求权威答案,char ,int,long,float,double,等在64位和32位上分别占多少字节

2013-02-24 
求权威答案,char ,int,long,float,double,等在64位和32位下分别占多少字节不知道这种提法对不对,系统分32

求权威答案,char ,int,long,float,double,等在64位和32位下分别占多少字节
不知道这种提法对不对,系统分32位和64位,但是处理器也分32位的和64位的。有同志说和编译器有关,和位数没关系,求权威答案。
[解决办法]
指针长度和地址总线有关。因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节。
[解决办法]
#include<iostream>
using namespace std;
int main()
{
cout<<"int :"<<sizeof(int)<<endl;
return 0;
}
LZ 可以用这样的方法依次求出想要的类型的所占字节大小,
64位系统是32位系统的两倍吧
[解决办法]

         32位      64位
char      1       1
int       4      大多数4,少数8
long      4       8
float     4       4
double    8       8
指针        4       8

[解决办法]
编译器一般会做这些设定:
char占一个机器字节byte,一般是8位,但也出现过6位,7位,9位,12位和16位。
int占一个机器字word,一般是32位。但也出现过8, 9, 12, 18, 24, 36, 39, 40, 48和60位。
long占一个通用寄存器,所以32位机上是32位,64位机上是64位。
指针和long一样大。
float如果是按照IEEE的标准是32位。
double如果是按照IEEE的标准是64位。

[解决办法]
个人理解,CPU、OS、Compiler综合决定。
比如32位下Windows,Tubor C,int是16位,VC,int是32位(这是Compiler决定的例子);
又入Java,int哪里都是32位(举Java的例子是想说,即使是16位的平台,也可以强制实现的时候int是32位的);
??
这样的组合还很多,我们用过的比我们没有用过的平台要少很多,所以对于这种问题,我更倾向说是平台依赖的(环境依赖的),什么是平台,CPU,OS加Compiler。

[解决办法]
也可以换个说法,是实现依赖的,只要你有这样那样的需要,什么样的组合都能实现的。
当然,能充分消耗CPU的能力的,是最好的实现。

[解决办法]
这玩意看编译器.没确定标准.C和C++的标准里规定,这些类型的取值范围由实现者定义.只要求编译器给出相应的MIN/MAX值.而编译器通常会按其目标平台的特性来定,以能发挥硬件的最大性能为准则...

热点排行