c语言各数据类型的范围与精度

Posted 卷王2048

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言各数据类型的范围与精度相关的知识,希望对你有一定的参考价值。

各数据类型的范围与精度

基本类型字节数位数取值范围(二进制)取值范围(十进制)大概范围(十进制)精度(取决于尾数的范围)
byte1 byte8 bit − 2 7 -2^7 27 ~ 2 7 − 1 2^7 - 1 271 − 128 -128 128 ~ + 127 +127 +127
short2byte16bit − 2 15 -2^15 215 ~ 2 15 − 1 2^15 - 1 2151 − 32767 -32767 32767 ~ + 32768 +32768 +32768 3.2 ∗ 1 0 4 3.2*10^4 3.2104
int4byte32bit − 2 31 -2^31 231 ~ 2 31 − 1 2^31 - 1 2311 − 2147483648 -2147483648 2147483648 ~ + 2147483647 +2147483647 +2147483647 2.1 ∗ 1 0 9 2.1*10^9 2.1109
unsigned int4byte32bit 0 0 0 ~ 2 32 − 1 2^32-1 2321 0 0 0 ~ 4294967295 4294967295 4294967295 4.3 ∗ 1 0 9 4.3*10^9 4.3109
long long8byte64bit − 2 63 -2^63 263 ~ 2 63 − 1 2^63 - 1 2631 − 9223372036854775808 -9223372036854775808 9223372036854775808 ~ + 9223372036854775807 +9223372036854775807 +9223372036854775807 9.2 ∗ 1 0 18 9.2*10^18 9.21018
unsigned long long8byte64bit 0 0 0 ~ 2 64 − 1 2^64 - 1 2641 0 0 0 ~ 18446744073709551615 18446744073709551615 18446744073709551615 1.8 ∗ 1 0 19 1.8*10^19 1.81019
float4byte32bit − 3.402823466 × 1 0 38 -3.402823466×10^38 3.402823466×1038 ~ + 3.402823466 × 1 0 38 +3.402823466×10^38 +3.402823466×1038 1 0 − 6 10^-6 106,即小数点后6位,超出的会进行舍入(即去掉),可以精确表示int 0 0 0 ~ 16777215 16777215 16777215(即 0 0 0 ~ 2 24 − 1 2^24 - 1 2241)
double8byte64bit 1.7976931348623157 ∗ 1 0 308 1.7976931348623157*10^308 1.797693134862315710308 1 0 − 15 10^-15 1015,即小数点后15位,超出的会进行舍入(即去掉),可以精确表示long 0 0 0 ~ 9 , 007 , 199 , 254 , 740 , 991 9,007,199,254,740,991 9,007,199,254,740,991(即 0 0 0 ~ 2 53 − 1 2^53 - 1 2531)
char2byte16bit 0 0 0 ~ 2 16 − 1 2^16 - 1 2161

以上是关于c语言各数据类型的范围与精度的主要内容,如果未能解决你的问题,请参考以下文章

c语言里面的float是啥意思

c++中,float double区别

float和double有啥区别?

C语言中float是啥意思

浮点型数据的精度是啥意思

C语言中单精度和双精度浮点型数据的数值范围是多少?怎么算出来的?请大虾帮忙了!