博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言基本数据类型(C99)
阅读量:3783 次
发布时间:2019-05-22

本文共 2839 字,大约阅读时间需要 9 分钟。

先行知识点

  • 补码 = 原码的反码 + 1

基本数据类型介绍

基本数据类型 计算机内存占用大小(字节) 取值范围
( signed ) char 1 [ -128 ,+127 ]
unsigned char 1 [ 0 , 255 ]
short 2 [-32768~+32767]
unsigned short 2 [ 0 , 65535]
int 4 [ -2147483648,+2147483647]
unsigned int 4 [ 0 , 4294967295]
long 4 [ -2147483648,+2147483647]
unsigned long 4 [ 0 , 4294967295]
long long ( C99 ) 8 [-9223372036854775808,+9223372036854775807]
unsigned long long (C99) 8 [ 0 , 18446744073709551615]
float 4 [-3.4028235E38, 3.4028235E38]
double 8 负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324, 正值取值范围为 4.94065645841246544E-324 到 1.797693E+308
bool ( C99 ) 1 true/false
complex ( C99 ) 16

字符型

  • (signed) char

    有符号字符类型 ,占用内存空间 1 个字节 ( 8bit ),其最高位为符号位,0 代表正数,1 代表负数 。

    因此我们分3个部分来将其拆解取值范围:

    • 其最大正数值的二进制(补码)可以表示为 0111 1111 ,十进制表示为 127,

      最小的正数值的二进制(补码)为 0000 0001,十进制表示为 1;

    • 中间还有一个 0000 0000 十进制表示为 0

    • 最小负数值的二进制(补码)表示为 1000 0000 ,还原为原码为 1000 0000, 十进制表示为 -128(因为并没有 -0 这个概念)。

      最大负数值的二进制(补码)表示为 1111 1111, ,还原为原码为 1000 0001,十进制表示为 -1

      即 [ -128 ,+127 ]。

  • unsigned char

    无符号字符类型 ,占用内存空间 1 个字节 ( 8bit ),其最高位与符号无关 ,所以只代表正数,因此其最大值的二进制可以表示为 1111 1111 ,十进制表示为 255;最小值的二进制可以表示为 0000 0000,十进制表示为 0。即 [ 0 , 255 ]。

短整型

  • (signed) short

    有符号短整型 ,占用内存空间 2 个字节 ( 16bit ),其最高位为符号位,0 代表正数,1 代表负数 ,按 char 类型的取值范围方法计算,可得取值范围 [ -32768,+32767 ]。

  • unsigned short

    无符号短整型 ,占用内存空间 2 个字节 ( 16bit ),其最高位与符号无关 ,所以只代表正数,十进制表示为 65535;十进制表示为 0。即 [ 0 , 65535]。

整型

  • (signed) int

    有符号整型 ,占用内存空间 4 个字节 ( 32bit ),其最高位为符号位,0 代表正数,1 代表负数 ,按 char 类型的取值范围方法计算,可得取值范围 [ -2147483648,+2147483647]。

  • unsigned int

    无符号整型 ,占用内存空间 4 个字节 ( 32bit ),其最高位与符号无关 ,所以只代表正数,十进制表示为 4294967295;十进制表示为 0。即 [ 0 , 4294967295]。

长整型

  • 长整型在一些编译器中的长度为 4个字节,取值范围与上述整型一致。

C99 新加的长整型

  • (signed) long long

    有符号长整型 ,占用内存空间 8 个字节 ( 64bit ),其最高位为符号位,0 代表正数,1 代表负数 ,按 char 类型的取值范围方法计算,可得取值范围[ -9223372036854775808,+9223372036854775807]。

  • unsigned long long

    无符号长整型 ,占用内存空间 8 个字节 ( 64bit ),其最高位与符号无关 ,所以只代表正数,十进制表示为 18446744073709551615;十进制表示为 0。即 [ 0 , 18446744073709551615]。

单精度浮点型

  • float

    单精度浮点型,占用内存空间 4 个字节 ( 32bit ),其取值范围为 [-3.4028235E38, 3.4028235E38]

双精度浮点型

  • double

    单精度浮点型,占用内存空间 8 个字节 ( 64bit ),其负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308

布尔类型(C99)

  • _Bool

布尔类型,占用内存空间 1 个字节 ( 8bit ),其值为 true ( 1 ) / false ( 0 )。

复数类型(C99)

  • _Complex

    复数类型,占用内存空间 16 个字节 ( 128bit )

在Cfree上的运行结果:

the size of char is 1Bytethe size of undigned char is 1Bytethe size of short is 2Bytethe size of unsigned short is 2Bytethe size of int is 4Bytethe size of unsigned int is 4Bytethe size of long is 4Bytethe size of unsigned long is 4Bytethe size of long long is 8Bytethe size of unsigned long long is 8Bytethe size of float is 4Bytethe size of double is 8Bytethe size of _Bool is 1Bytethe size of _Complex is 16Byte

​后续还会继续分享串口的其他C语言基础知识,感兴趣的小伙伴记得关注我

-----------------------------------------------结束--------------------------------------------------------
文章有价值,请各位看官点个赞关注我或者点右边打个赏

转载地址:http://tumvn.baihongyu.com/

你可能感兴趣的文章
网络编程基础
查看>>
python实现快速排序
查看>>
python实现归并排序
查看>>
ptqt5控件了解(三)
查看>>
自学C++(一)
查看>>
51单片机介绍(二)
查看>>
STM32F103 入门篇-5-初识STM32
查看>>
后台框架的frameset
查看>>
Spring Jdbc
查看>>
Spring 事务管理
查看>>
spring与mybatis的整合
查看>>
json数据交换和RESTful支持
查看>>
spring中的拦截器
查看>>
文件上传和下载
查看>>
Oracle指令,软件架构,
查看>>
oracle5:oracle的图形界面操作,分页查询,练习
查看>>
密码学基础之对称密码体制和公钥密码体制
查看>>
Spark Streaming进阶
查看>>
C++顺序表经典算法
查看>>
网络安全与管理知识点总结
查看>>