基本数据类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本数据类型
数据类型字长值域
全称简写字节数位数计算式数值
备注char char 1 byte 8 bits 与编译器有关signed char signed char 1 byte 8 bits -27 ~ 27 - 1 -128 ~ 127
unsigned char unsigned char 1 byte 8 bits 0 ~ 28 - 1 0 ~ 255
signed int int 2/4 bytes16/32 bits与编译器有关unsigned int unsigned 2/4 bytes16/32 bits与编译器有关signed short int short 2 bytes16 bits-215 ~ 215 - 1 -32768 ~ 32767
unsigned short int unsigned short 2 bytes16 bits0 ~ 216 - 1 0 ~ 65535
signed long int long 4 bytes32 bits-231 ~ 231 - 1 -2147483648 ~ 2147483647
unsigned long int unsigned long 4 bytes32 bits0 ~ 232 - 1 0 ~ 4294967295
signed long long int long long 8 bytes64 bits-263 ~ 263 - 1 -9223372036854775808 ~ 9223372036854775807
unsigned long long int unsigned long long8 bytes64 bits0 ~ 264 - 1 0 ~ 18446744073709551615
float float 4 bytes32 bits
24位二进制有效数字
2-23×2-126 ~ (2-2-23)×2127
约6~7位十进制有效数字
1.401298×10-45 ~ 3.402823× 1038
double double 8 bytes64 bits
53位二进制有效数字
2-52×2-1022 ~ (2-2-52)×21023
约15~16位十进制有效数字
4.940656458412465×10-324 ~ 1.797693134862316× 10308
long double long double 8/10 bytes64/80 bits与编译器有关
void void -
- - - 无值
说明:
1) char类型在多数编译器中与signed char相同。
2) int类型字长通常与CPU字长相同。早在16位机时代, Turbo C 2.0和Borland C++ 3.1中的int类型为2字节, 与short int相同; 在32位机时代, Visual C++ 6.0中的int类型为4字节, 与long int 相同; 现在已是64位机时代, 预计未来编译器中的int类型将为8字节, 与long long int相同。
3) Intel x86系列CPU中, 单精度实型(即float)为32位(4字节), 它包含1位符号、8位阶码和23位尾数(不包括小数点前的1), 即24位二进制有效数字、8位二进制指数, 约合6 ~ 7位十进制有效数字, 非零实数的值域为1.401298×10-45 ~ 3.402823× 1038。
4) Intel x86系列CPU中, 双精度实型(即double)为64位(8字节), 它包含1位符号、11位阶码和52位尾数(不包括小数点前的1), 即53位二进制有效数字、11位二进制指数, 约合15 ~ 16位十进制有效数字, 非零实数的值域为4.940656458412465×10-324 ~ 1.797693134862316× 10308。
5) 在Visual C++ 6.0中, long double类型与double相同。在Intel x86系列CPU中临时实数的位长为80位(10字节), 它包含1位符号、15位阶码和64位尾数(包括小数点前的1), 即64位二进制有效数字、15位二进制指数, 非零实数的值域为2-63×2-16382 ~ (2-2-63)×216383, 约合18~19位十进制有效数字, 非零实数的值域为3.645199531882474603×10-4951 ~ 1.189731495357231765×104932; Turbo C 2.0和Borland C++ 3.1中long double类型采用了这种临时实数。
6) 指针类型的字长通常与无符号整型相同。