在C语言中,各类数据类型各占多大字节?
看系统平台
32 位的如下
int 4个字节
long 4个字节
char 1个字节
float 4个字节
16 位的如下
int 2个字节
long 4个字节
char 1个字节
float 4个字节
int,float,double,long int等等分别在内存中占几个字节!有效位数又是多少!强制
不同的计算机是不完全一样的,
int 2或4字节
float 4字节
double 8字节
long int 4字节
有效位数为字节数乘8-1(减去这个符号位)
可以用如下代码查看
#include<stdio.h>
int main()
{
printf("char=%d
", sizeof(char));
printf("short=%d
", sizeof(short int));
printf("int=%d
", sizeof(int));
printf("long=%d
", sizeof(long int));
printf("long long=%d
", sizeof(long long int));
printf("float=%d
", sizeof(float));
printf("double=%d
", sizeof(double));
printf("long double=%d
", sizeof(long double));
return 0;
}
设C语言中,Int类型数据占2个字节,则unsigned类型数据占几个字节?这两者之间有什么联系?
也是两个字节,只不过是一个有符号,一个无符号,有符号的第一个内存单元表示正负0正1赋
取值范围也有所不同 假设int是两个字节,就有八个位,第一个位表示正负,后七个位表示大小值,取值范围就是-2 的7 - 1到2 的7方-1, 无符号(unsigned)没有正负,取值范围就是0 ~2 的8方-1
一个int类型到底占多少个字节
这个问题我们往往得到的答案是4.
但是int到底占多少个字节,却跟你的机器环境有关.
As you can see, the typical data type sizes match the ILP32LL model, which is what pilers adhere to on 32-bit platforms. The LP64 model is the de facto standard pilers that generate code for 64-bit platforms.
最近在一本有关代码审计的书上看到如上解释.这里很好的解释了int到底应该占多少个字节.
而且从他的角度来看是编译器去适应平台.所以真正决定int占多少字节取决于你的device platforms.
其实无论哪种模型short和char无论哪种model下都保持一致.
我们见得最多的就是ILP32LL模型.这种模型下int和long已经pointer占4个字节 long long占8个字节.
PS:这个表很容易记,中间的数字表明你是64bit还是32bit的机器.前面的I表示int,L表示long,LL表示long long,P就表示pointer.
位于数字前面的类型表示跟中间的bit数保持一致.举个例子:ILP32LL 就是ILP是32位,LL是64位.
TURBO C中int类型的变量占的字节数???
int类型在vc下是4个字节,在TC下是2个字节,也可以用函数测试:
main()
{
int a;
a=sizeof(int);
printf("%d",a);
}
long int,int占几个字节
int 占4个字节,long int占8个字节 ...
如果是c语言,int占2个字节,long int占4个字节。
如果是java,i long 在32位系统中一般为4个,但在64位系统一般位 8 个int 一般都为 4个nt 占4个字节,long int 占8个字 512个汉字应该是1KB 1KB=1024B(B是字节)也就是说一个汉字就是两个字节节。