当前位置:首页 » 编程语言 » c语言上的字节数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言上的字节数

发布时间: 2023-07-18 03:52:10

A. c语言int占几个字节

在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]

在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]

使用printf输出int占用字节数量:

printf("%d",sizeof(int));

除了int类型之外,还有short、long、long long类型可以表示整数。

unsigned int 表示无符号整数,数据范围为[0~2^32-1]

(1)c语言上的字节数扩展阅读:

int 占 4个字节 只能表示整数。

char 占1个字节 只能表示字符。

float 和double都是表示小数,float占4字节,double 占8字节,表示的数据范围不一样。

B. 一个数字在C语言中是多少个字节

在C语言中,一个数字占4个字节或8个字节。(以下试验都是基于32位计算机系统)
当该数字为整数时,占4个字节(默认转换为int类型);
当该数字为小数时,占8个字节(默认转换为double类型)。
可以通过如下的程序段来验证:
printf("%d\n",
sizeof(4));
//
输出4,即占4个字节(转换为int类型,相当于sizeof(int))
printf("%d\n",
sizeof(4.5));
//
输出8,即占8个字节(转换为double类型,相当于sizeof(double))

C. c语言的字节数是什么意思

int占多少个字节是由编译器决定的,ANSI标准定义int是占2个字节.
TC是按ANSI标准的,它的int是占2个字节的.
你可以在TC里试.printf("%d",sizeof(int));结果是2;
但是在VC里,一个int是占4个字节的,在VC里面,
printf("%d",sizeof(int));
cout<<sizeof(int);结果都是4.
不同的编译器,规定也不一样.
float,double也是一样的,在不同的编译器里,占的字节是不一样的.

D. C语言中一个英文字母.汉字.数字 分别都占几个字节啊

1、英文字母:如果是char 型,那么是占用1个字节,如果是string型,应该是两个。

char c = 'a';//它占用一个字符

char c[] = "a";//占用两个。

char c[] = "abcde";//占用4+1 = 5 个,结尾有一个''

2、数字:这个有很多中,从小到大分别为:short、int、float、long、double
分别为:1个、2个、4个、8个、16个

3、汉字:理论上说,一个汉字占用两个字符。比如:中国,就占用4个字符,如果是:

char c[] = "中国";//占用4+1 = 5个字符

char c = '中';//错误,不能这样计算

(4)c语言上的字节数扩展阅读

1、C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

2、C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。

3、由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

参考资料 网络-C语言

E. C语言中字符占多少个字节

1、在32位系统中:

char(1)字节

short(2)字节

int(2)字节

long(4)字节

char*(4)字节

int*(4)字节

int**(4)字节

2、在64位系统中:

char(1)字节

short(2)敏姿字节

int(4)字节

long(8)字节

char*(4)字节

int*(4)字节

int**(4)字节

扩桥薯绝展资料

在C++中short占2字手镇节,int、float、long都占4字节,double占8字节。

指针长度和地址总线有关。因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节。

char占1字节,short占2字节,int、float、long都占4字节,double占8字节,任意类型的指针都占4个字节。

F. C语言字符数占几个字节,又是多少位。

这个要看字符数是什么数据类型,可以用sizeof(类型)操作符来测试字节数。
1、英文字母:如果是char 型,那么是占用1个字节,8位。如果是string型,应该是两个字节,16位,因为末尾还有个\0字符。
比如:
char c = 'a';//它占用一个字符
char c[] = "a";//占用两个。
char c[] = "abcde";//占用4+1 = 5 个,结尾有一个'\0'
2、数字:有很多种类,从小到大分别为:
short、int、float、long、double
字节为:1个、2个、4个、8个、8个
位数为:8位、16位、32位、64位、64位
3、汉字:理论上说,一个汉字占用两个字节,16位。比如:中国,就占用4个字节,例如:
char c[] = "中国";//占用4+1 = 5个字符

G. c语言中字符串所占字节数怎么算

在纯ASCII码下,字节数=字符串长度=字符个数,因为每个字符就一个字节。
在Unicode下,字节数/2=字符串长度=字符个数,因为每个字符都是2个字节。
在ASCII码与其它双字节字符系统混用时,字节数=ASCII码字符个数+双字节字符个数*2,
而此时字符串长度到底怎么统计就不好说了,
【有的语言如C语言,此时字符串长度=字节数,】
有的语言如JS,此时字符产长度=字符个数。

H. c语言类型所占字节数

类型

常见的有char、int、long、short、float、double及指针等.

字符类型

这里单只char,char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,为1个字节。

整数类型

查了资料发现对各个类型的整数占用字节数是有一个规定的,虽然16位32位或者64位的机子各种类型所占用的长度并不一样。规则如下:

short 至少占用2个字节。
int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
short 的长度不能大于 int,long 的长度不能小于 int。
所以说,short并不一定短,long并不一定短,有可能都和int一样长。

浮点数(小数)

C中浮点数有两种,float和double,不像整数,小数的长度始终是固定的,float占用4个字节,double占用8个字节。

指针

C中指针即为地址,所以编辑器的寻址空间则是指针的地址范围。所以指针变量在32位机器的寻址空间为2^32,要将所有地址都表示出来则需要为4个字节长度,所以要占用4个字节长度。同理64位的编译器则需要8个字节长度。

I. C语言中数据类型所占字节数与它取值范围的关系

C语言中的数据类型,简单的可以分为整数类型和浮点数类型。所占字节数与取值范围的关系实际上是整数编码和浮点数编码的问题,整数编码的三种方式是原码、反码、补码,很容易理解,浮点数的编码格式使用的是IEEE754编码。


1、整数编码以字符类型为例。

字符类型占1个字节,共8位二进制bit位,因此排列组合数,有2^8 = 256种编码的方法。如果表示无符号字符类型,那一般来说表示【0,255】这256个数。


如果表示有符号char类型,如果表示正数,那最高位符号为0,因此可表示的最正整数是:

0-111 1111 ,转化成十进制就是127。同样的道理,符号为1表示负数。最小的负数是

1-000 0000,转化成十进制数就是-128,因此有符号char类型表示的范围是[-128,127]。


一般来说,假设整型数据类型占的二进制位数n,如果表示无符号整数则取值范围是[0,2^n-1],如果表示有符号整数,【-2^(n-1) , 2^(n-1) - 1] 。


2、浮点数类型

浮点数编码一般采用的是IEEE754的编码规则,这个编码格式主要指出了浮点数有效数字、指数以及符号位所占的二进制位数。简单概括为:


格式 长度 符号位 指数位 尾数位 有效位数 指数偏移 尾数说明

单精度 32 1 8 23 24 127 有一位隐含位

双精度 64 1 11 52 53 1023 有一位隐含位

扩展双精度 80 1 15 64 64 16383 没有隐含位

注意:扩展双精度格式没有隐含位,因此它的有效位数与尾数位数一致,而单精度和双精度格式均有一位隐含位,因此它们的有效位数比尾数位数多1。


一般很少自己手动来算浮点数的取值范围,可以使用如下程序来计算。

#include<stdio.h>
typedefstructFP_SINGLE
{
unsigned__int32fraction:23;
unsigned__int32exp:8;
unsigned__int32sign:1;
}fp_single;
typedefstructFP_DOUBLE
{
unsigned__int64fraction:52;
unsigned__int64exp:11;
unsigned__int64sign:1;
}fp_double;
typedefstructFP_EX_DOUBLE
{
unsigned__int64fraction;
unsigned__int32exp:15;
unsigned__int32sign:1;
}fp_ex_double;
intmain()
{
floatx;
fp_single*fp_s=(fp_single*)&x;
fp_s->sign=0;
fp_s->exp=0xfe;
fp_s->fraction=0x7fffff;
printf("float最大数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0x1;
fp_s->fraction=0x0;
printf("float最小数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0;
fp_s->fraction=0x1;
printf("float最小弱规范数:%le ",(double)x);
doubley;
fp_double*fp_d=(fp_double*)&y;
fp_d->sign=0;
fp_d->exp=0x7fe;
fp_d->fraction=0xfffffffffffff;
printf("double最大数:%le ",y);
fp_d->sign=0;
fp_d->exp=0x1;
fp_d->fraction=0x0;
printf("double最小数:%le ",y);
fp_d->sign=0;
fp_d->exp=0;
fp_d->fraction=0x1;
printf("double最小弱规范数:%le ",y);
charch[10];
fp_ex_double*fp_ex_d=(fp_ex_double*)ch;
fp_ex_d->sign=0;
fp_ex_d->exp=0x7ffe;
fp_ex_d->fraction=0xffffffffffffffff;
//不知道扩展双精度浮点数如何输出,
//不过可以用od跟踪,然后找到ch[0]的地址,在数据窗口中选择浮点80为长双精度,
//就可以看到数值了。
fp_ex_d->sign=0;
fp_ex_d->exp=0x1;
fp_ex_d->fraction=0x8000000000000000;
fp_ex_d->sign=0;
fp_ex_d->exp=0;
fp_ex_d->fraction=0x1;
return0;
}

J. c语言怎样计算所占字节

主要是看变量定义的类型;
char占一个字节,int占四个字节,float占四个字节,double占8个字节;
当要注意的是在字符串中要加个'\0',要多算一个字节。