求权威答案,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值.而编译器通常会按其目标平台的特性来定,以能发挥硬件的最大性能为准则...