本文共 2839 字,大约阅读时间需要 9 分钟。
先行知识点
基本数据类型 | 计算机内存占用大小(字节) | 取值范围 |
---|---|---|
( 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]。
(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
布尔类型,占用内存空间 1 个字节 ( 8bit ),其值为 true ( 1 ) / false ( 0 )。
_Complex
复数类型,占用内存空间 16 个字节 ( 128bit )
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/