Ⅰ c语言共用体结构的所占内存大小是取决于成员变量中最大的类型吗
不是“最大类型”,是占用内存最大的那个变量或数组的大小。如union a{int x;double y;char s[80];};,虽然double类型是8字节,char类型是1字节,但s是char型数组,占有80个字节,所以它最大,故这个联合体a占80字节。
Ⅱ 在C语言中,int类型存储的最大的数是2^32,为什么为什么不是2^31
C语言中的int型在不同的机器上位数不同,其表示的数范围也不同。鄙人假设你说的int型是32位。
C中的int型使用补码表示,也就是32位补码,最高位为符号位,1代表负,0代表正。一个int型变量存储形式为x = { 符号位(1bit), 数值位(31bit) }。
一个int型变量最大值即32bit补码能表示的正数最大值。1bit符号位为0,31bit数值位,每位可以有{0, 1}两种组合,31位可以有2^31种组合,最大正数即数值位全为1时能取到:
二进制(0;111,1111,1111,1111,1111,1111,1111,1111) = 7FFFFFFFH,按等比数列计算结果为 2^0 + 2^1 + 2^2 + ... + 2^30 = [1*(1-2^31)] / (1-2) = 2^31 - 1。
综上所述,32bit的int型表示的最大正整数既不是2^32,也不是2^31,是(2^31 - 1) = 2,147,483,648,大约21亿。
Ⅲ C语言数值范围最大的数据类型(即能输出最大值)是什么还有怎么用printf函数表示
C的标准库貌似没有更大的了。
自定义数据类型的话多大都行,但得自己写输出,不能用printf
Ⅳ C语言int类型最大值
0x00CBF95C是int变量a的地址,从内存查看器可以看出,十进制数16被存储为00 00 00 10
说明单个'0'存储范围为0-15,表示成二进制的话,一个'0'存储范围相当于0000~1111,4个二进制位;
这里有8个'0',相当于一个int型是由4*8=32个二进制位来表示。
Ⅳ C语言数值范围最大的数据类型(即能输出最大值)是什么还有怎么用printf函数表示
要表示更高精度的,在C语言里是没有的,double是采用一种IEEE标准来表示浮点数在计算机里的形式的,一般来说是64位,也就是8个字节,正如楼上说的,如果要表示精度更高的浮点数,就是要自行设计算法咯~~~~
Ⅵ c语言中基本数据类型包括哪些分别占多大内存
数据类型在内存上所占空间大小与操作系统位数有关。一般常说的数据类型在内存上所占空间大小默认指的都是32位操作系统,这也是用的比较多的。
char 1字节
short 2字节
int 4字节
long 4字节(64位操作系统下为8字节)
float 4字节
double 8字节
Ⅶ C语言中能占字节最大的数据类型是long long吗
char a[10000000];这个类型是 char[10000000];显然比long long长
应当按需所求
c一般提供 8 16 32 和64位整型
如果需要更大的整型请使用数学库