long、int、short类型数据占用内存大小是由什么决定

long、int、short类型数据占用内存大小是由什么决定?请详细解析
A.由用户自己定义 B。由c语言编译系统决定
选择哪一个,请详解

long、int、short类型数据占用内存大小是由计算机字长和编译程序决定的。

常用的字长为8位、16位、32位和64位。字长为8位的编码称为字节,是计算机中的基本编码单位。如一个 32 位的字长,可以表示从0至2的32次方减1的无符号整数值,或者表示从负的2的32次方至2的32次方减1的有符号整数值。特殊的算术指令,对字长中的位使用不同的解释,以此作为浮点数。

编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

因此,计算机字长提供了硬件计算精度的支持,编译程序则提供了源程序到机器码的转换。

扩展资料:

字长单位可能被应用到:

1、整数:计算机处理的整数值通常可以有若干种不同的长度,但是其中总有一种正好是该构架的字长。如果有的话,其他的整数长度很可能是字长的倍数或分数。小尺寸的整数尺寸通常是为了提高存储效率;当它被加载处理器时,它经常被转换成字长尺寸的形式。

2、浮点数:计算机处理的浮点数通常是一个字长或字长的倍数。

3、地址:计算机处理的存储器地址必须有足够的尺寸,以便可以表示需要的数值范围,但是又不能过大。经常使用的尺寸是字,不过也可以是字的倍数或分数。

4、寄存器:处理器寄存器根据它要处理的数据类型被设计成适当的尺寸,例如:整数、浮点数、地址。许多计算机构架使用通用”寄存器,它们可以存储任何类型的数据,可以允许存储哪怕是最大的数据类型。它们的尺寸通常是其构架的字长。

参考资料来源:百度百科-数据类型

参考资料来源:百度百科-字长

参考资料来源:百度百科-编译程序

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-22
你声明的时候就自动分配了相应的内存 是固定大小 基本数据类型么
byte:一个字节(8位)
short:两个字节(16位)
int:四个字节(32位)(一个字长)
long:八个字节(64位)
float:四个字节(32位)
double:八个字节(64位)本回答被网友采纳
第2个回答  2010-01-11
long称为长整型,int称为整型,short称为短整型,他们占用内存的大小当然是根据该数据类型所能表达的数据长度决定的啊,例如int型的占用4个字节,那它所能表达的最大位数就是32位,那当定义了int变量的时候就预先在内存中分配了32位长度的内存空间给该变量,其他的类型也是一样,一样我的回答能给你帮助!
第3个回答  2010-01-11
由程序语言标准决定,未定义部分由编译器决定,所以不同的编译器的实现不一定一样。比如TC中,int为两个字节,而VC中int为四个字节。

一般实现参考3楼答案。
要知道你所用编译器的实现,可以用sizeof命令。
比如sizeof(double)
第4个回答  2019-08-04
是由编译程序的设置和机器的字长决定的

long、int、short类型数据占用内存大小是由什么决定
long、int、short类型数据占用内存大小是由计算机字长和编译程序决定的。常用的字长为8位、16位、32位和64位。字长为8位的编码称为字节,是计算机中的基本编码单位。如一个 32 位的字长,可以表示从0至2的32次方减1的无符号整数值,或者表示从负的2的32次方至2的32次方减1的有符号整数值。特殊的...

...以下关于long、int和short类型数据占用内存大小的叙述中正确的是_百...
原因是,标准 C语言 规定了 类型 “long int“ (4个字节)和 “short int“ (2个字节), 但没有规定 int, int 是 long 还是 short 由C语言编译系统自己决定(4 个字节 还是 2个字节)。

C语言中不同的数据类型的长度和什么有关
和编译器有关。每种类型占用的字节数,是和编译器直接相关的,也就是常说的编译器的字长。以整型系列的类型,char, short, int, long为例:1 16位字长:对于16位编译器,char占1字节,short占2字节,int占2字节,long占4字节。2 32位字长:对于32位编译器,char 占1字节,short占2字节,int占...

在c语言中不同数据类型的长度是由什么决定的
归根结底都是A。或者说是编译器。

求, c语言中所有常见的数据类型(如short,float,int,char,等等)在内存...
字符型 char 1 字节 整型 int 2 字节 short 2 字节 长整型 long 4 字节 单精度 float 4 字节 双精度 double 8 字节

求C语言中int ,long int,char,float,short,DWORD,WORD,BYTE,byte的...
变量占用内存字节由操作系统决定,64位系统中,long占用8字节,……32位操作系统中,int,long占用4字节,short占用2字节……16位系统中,int占用2字节,……数字3占用多少,和你声明的的类型有关,在32位系统中,将3赋值给short型变量,他就占用2个字节,如果赋值给int型,他就占用4个字节 可以用...

在C语言中,double、long、unsigned、int、char类型数据所占字节数
在C语言中,不同数据类型所占用的内存字节数取决于编译器的位宽。对于16位编译器,char类型占用1个字节,指针变量char*占用2个字节;short int和int占用2个字节,unsigned int同样为2个字节;float占4个字节,double则需要8个字节;long和unsigned long各有4个字节。而对于32位编译器,char和指针char*...

int整型占2字节。short占2字节。long占2字节。那为什么说整型数据占...
我想你是搞错啦,如果整形是四个4节的话,那么int型就是4个字节,short型是2个字节,long型就是4个字节。数据类型占多少个字节是根据体系结构决定的,如16位机器int是16位,32位机器int就是32位。所以脱离实际硬件条件单纯谈论数据类型,是没有确切答案的。这个问题我在上学时也纠结了很久,不同的...

c语言计算int型数据的字长,求大神详细解释
如果是64位主机,int占64位,但这不是一定的,还要看编译器类型等因素。在C语言中,double、long、unsigned、int、char类型数据所占字节数和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI\/ISO制订的):sizeof(short int)<=sizeof(...

c语言类型所占字节
它们所占字节的大小是由编译器的实现决定的,但它们常用的大小一般是固定的。下面是C语言基本数据类型所占字节的表格:类型 | 存储大小(字节)--- | ---char | 1short | 2int | 4long | 4 或 8float | 4double | 8long double | 16可以看出,char类型所占字节最少,只有1个字节;而long...

相似回答