本文目录一览:
在C语言中各种数据类型各占多少位
(一)32位平台: 分为有符号型与无符号型。 有符号型:
short
在内存中占两个字节,范围为 -2^15 ~ (2^15 - 1)int
在内存中占四个字节,范围为 -2^31 ~ (2^31 - 1)long
在内存中占四个字节,范围为 -2^31 ~ (2^31 - 1) 无符号型:最高位不表示符号位unsigned short
在内存中占两个字节,范围为 0 ~ (2^16 - 1)unsigned int
在内存中占四个字节,范围为 0 ~ (2^32 - 1)unsigned long
在内存中占四个字节,范围为 0 ~ (2^32 - 1) 实型变量: 分单精度float
和双精度double
两种形式:float
: 占四个字节,提供 7~8 位有效数字。double
: 占八个字节,提供 15~16 位有效数字。 (二)16位平台:
- 整型(基本型):类型说明符为
int
,在内存中占 2 个字节。 - 短整型:类型说明符为
short int
或short
。所占字节和取值范围均与整型(基本型)相同。 - 长整型:类型说明符为
long int
或long
,在内存中占 4 个字节。 - 无符号型:类型说明符为
unsigned
。 各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 实型变量: 分为单精度(float
型)、双精度(double
型)和长双精度(long double
型)三类。
- 单精度型占 4 个字节(32 位)内存空间,其数值范围为 3.4E-38 ~ 3.4E+38,只能提供七位有效数字。
- 双精度型占 8 个字节(64 位)内存空间,其数值范围为 1.7E-308 ~ 1.7E+308,可提供 16 位有效数字。
- 长双精度型占 16 个字节(128 位)内存空间,可提供 18-19 位有效数字。
C语言中128L与128所占存储空间的区别?
在 32 位的编译系统中他们两个都是占四个字节的存储空间。 如果是在 16 位的编译系统中,他们所占的存储空间分别是 4 和 2 个字节。
c语言 1个字节 范围为什么是 -128 — 127,-128怎么算的
正数一个字节最大只能是 127,128 超过了一个字节能表示的最大值,127 是 01111111
,加 00000001
等于 10000000
,最高为是 2 的 7 次方等于 128,由于一个字节的最大值是 127,所以 128 就只能是 -128,但是这里的符号位应该是补全的码,由于只有一个字节看不到。
如何在c语言中构造一个128位数
在 C 语言中,并没有任何数据类型可以表示精确的 128 位数。所以要表示 128 位数,就必须用数组模拟。比如,用字符数组模拟,每位字符表示一位数,使用 '0'~'9'
表示各个位上的数值。
例如:
char num[129] = "12345678……";
表示数字 12345678
。由于 128 位过长,就不举 128 位的例子了。
输入输出均可以用字符串的方式。
另外,做计算的话,就必须自己写函数了,如加减乘除模除等,对于这类实现,在算法中称为大数计算,如果需要,可以对此进行搜索,有很多优秀算法。