嵌入式linux C编程基础知识点二:变量类型
- 一、知识目录
1.字符型: char -128~127 1byte %c
uchar 0~255 1byte %c
2.整型: short int 0~65535 2byte %d
int 4byte %d
3.长整型: long int 4byte %d
4.浮点数 : float 4byte %f
double 8byte %f
注意:(1)只有浮点型才有小数点
(2)如果变量是有符号类型,那么最高位是符号位,为1表示负数,为0表示正数。
(3)uchar也可使用说明符 %d,输出的是字符的ASCII码值。
- 二、学习笔记
3.1、字符型
字符型对应ASCII字符。ASCII字符是一种编码,就是用数字编码来表示一个符号的一种方法
本质上说,字符型其实也是整形,只是这些整形数被用来表示一些字符的ASCII编码值,所以叫做字符型。字符型一般用8位二进制表示,无符号字符型范围是0~255.
字符型其实是一种比short还短的整形,所以它可以和int相运算。
3.2、整形
C语言中的整形对应数学中的整数,整形变量是用来描述一个整数值的,整形变量经过计算后也只能是整数(整型),不可能出现小数(浮点型).
要求:要学会整形变量的定义,赋值,计算
要学会使用printf函数打印出一些整形变量的值,作为输出和调试。
C语言中整形有三种:
(1)int 整形
(2)short int,又叫做short,短整整(<=整形)
(3)long int,又叫做long,长整型(>=整形)
3.3、浮点型
C语言中浮点型对应数学中的小数。浮点型有float和double两种。使用方式相同,不同在于表示范围和精度。float表示的范围小,精度低(小数点后6位);而double表示范围大,精度高。(小数点后16位)
范围是说表示的数有多大,精度是指这个数的分辨率有多细
注意:printf中打印float或double类型,要是用%f,不能用%d。
3.4、有符号数和无符号数
数学中数是有符号的,有整数和负数之分。所以计算机中的数据类型也有符号,分为有符号数和无符号数。
有符号数:
整形:signed int(简写为 int)
signed long,也写作signed long int,(简写为long)
signed short,也写作signed short int(简写为short)
signed(表示signed int)
浮点型:
signed float(简写为float)
signed double(简写为double)
字符型:
signed char(简写为char)
无符号数:
整形:整形有无符号数,用来表示一些编码编号之类的东西。譬如身份证号,房间号
unsigned int(没有简写)
unsigned long int(简写unsigned long)
unsigned short int(简写为unsigned short)
浮点数:没有无符号浮点数。也就是说,小数一般只用在数学概念中,都是有符号的。
字符型:字符型有无符号数
unsigned char(没有简写)
- 三、代码演示
#include
int main(void)
{
int len_lei1,len_lei2,len_lei3,len_lei4,len_lei5,len_lei6,len_lei7;
len_lei1 = sizeof(char);
len_lei2 = sizeof(unsigned char);
len_lei3 = sizeof(short);
len_lei4 = sizeof(int);
len_lei5 = sizeof(long);
len_lei6 = sizeof(float);
len_lei7 = sizeof(double);
printf("len_lei1 = %d.
", len_lei1);
printf("len_lei2 = %d.
", len_lei2);
printf("len_lei3 = %d.
", len_lei3);
printf("len_lei4 = %d.
", len_lei4);
printf("len_lei5 = %d.
", len_lei5);
printf("len_lei6 = %d.
", len_lei6);
printf("len_lei7 = %d.
", len_lei7);
}