⑴ long、int、short类型数据占用内存大小是由什么决定
long、int、short类型数据占用内存大小是由计算机字长和编译程序决定的。
常用的字长为8位、16位、32位和64位。字长为8位的编码称为字节,是计算机中的基本编码单位。如一个 32 位的字长,可以表示从0至2的32次方减1的无符号整数值,或者表示从负的2的32次方至2的32次方减1的有符号整数值。特殊的算术指令,对字长中的位使用不同的解释,以此作为浮点数。
编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
因此,计算机字长提供了硬件计算精度的支持,编译程序则提供了源程序到机器码的转换。
(1)short型数据在计算机的存储扩展阅读:
字长单位可能被应用到:
1、整数:计算机处理的整数值通常可以有若干种不同的长度,但是其中总有一种正好是该构架的字长。如果有的话,其他的整数长度很可能是字长的倍数或分数。小尺寸的整数尺寸通常是为了提高存储效率;当它被加载处理器时,它经常被转换成字长尺寸的形式。
2、浮点数:计算机处理的浮点数通常是一个字长或字长的倍数。
3、地址:计算机处理的存储器地址必须有足够的尺寸,以便可以表示需要的数值范围,但是又不能过大。经常使用的尺寸是字,不过也可以是字的倍数或分数。
4、寄存器:处理器寄存器根据它要处理的数据类型被设计成适当的尺寸,例如:整数、浮点数、地址。许多计算机构架使用通用”寄存器,它们可以存储任何类型的数据,可以允许存储哪怕是最大的数据类型。它们的尺寸通常是其构架的字长。
⑵ c语言中,各种类型的整型数据在内存中都占用4个字节吗
不是。
C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。
整型类型在虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI/ISO制定):
short至少占用2个字节。
int建议为一个机器字长,32位环境下为4字节,64位环境下为8字节。
short的长度不能大于int,long的长度不能小于int。
(2)short型数据在计算机的存储扩展阅读
整型数据分为基本整形(int)、短整型(short int)、长整型(long int)以及新添加的双长整型(long long int)。
基本整形(int):一般占据2个或者4个字节,这都是有编译系统决定的。一般来讲在vc中计算机给它分配4个字节,在计算机中整型数据一般是按补码和销段的形式存储的。
短整型(short int):在vc中计算机分配给唤誉短整型的内存大小为2个字节。存储方式与基本整形相同,一个短整型的数据范围是:-32768-32767。
长整型数斗毕据(long int):在vc中系统分配给它4个字节,多以一个长整型数据的范围为-2的31次方到2的31次方减一。
双长整型(long long int):在vc中系统给它分配8个字节,这种数据类型一般比较少用。
⑶ int、short、long类型的最小存储空间
1、位位位位(bit) 来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态(21);两个二进制位可以表示00、01、10、11四种(22)状态;三位二进制数可表示八种状态
2、字节(byte) 字节来自英文Byte,音译为“拜特”,习惯上用大写的“B”表示。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
3、字 计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2个字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。 计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。
对于不同的编译器,数据类型的存储单元大小是有区别的,vc来说,int为4字节,short为2字节,弄为4字节,还有long long 是8字节。
机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,一般地,大型计算机的字长为32―64位,小型计算机为12―32位,而微型计算机为4一16位。字长是衡量计算机性能的一个重要因素。
⑷ C语言中,int, char和short int三种类型变量所占用的内存大小是
C语言中,int, char和short int三种类型变量所占用的内存大小因机器的不同有所不同。
一般在32位及以上机器上,int占四字节,char占一字节,short占2字节。
可以通过sizeof()命令获取本机器上的各类型的占内存的大小,参考代码如下:
#include<stdio.h>
voidmain()
{
printf("sizeofint=%d ",sizeof(int));
printf("sizeofshort=%d ",sizeof(short));
printf("sizeofchar=%d ",sizeof(char));
}
⑸ 在c语言中,int,char,short三种类型数据在内存中所占的字节数由什么决定
通常char占1个字节,short占2个字节。原因是,1个字节可以表示一个ASCII码,为了提高计算机的数据处理能力,short用一个字节远远不足,但限于早年的存储器体积和价格,用2个字节也是不得以的事情。现在,存储器的体积不再是考虑的因素,价格也不是“事”,CPU的数据寄存器已经是64位(8个字节),32位的CPU已近末日黄昏,所以short用8个字节表示不再是梦。所谓64位的CPU,指的就是其数据寄存器(包括指令寄存器)的宽度是64bits,一次读取、存储64bits最为快捷,这就是int类型数据的标准宽度。