|
一.数据类型
1.数据分类
在LinuxC中数据类型分为两大类:常量数据和变量数据。
1.1常量数据
在程序运行过程中值不能被改变的数据称为常量数据,简称常量。
1.2变量数据
在程序运行过程中值可以被改变的数据称为变量数据,简称变量。
2.常量
常量是在程序中不能被改变的数据。
2.1整型常量
十进制形式: 100 120 250 //十进制:用0,1,2,3,4,5,6,7,8,9 这10个数字表示的数,逢十进一
八进制形式: 0120 0250 //八进制:用0,1,2,3,4,5,6,7这8个数字表示的数,逢八进一
十六进制形式:0x12 0x34 0xa1 0xb2 //十六进制:用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这16个数字表示的数,逢十六进一
数据在计算机中的存储进制 :二进制形式 //二进制:用0,1这2个数字表示的数,逢二进一
不同进制之间的转换:
1》十进制和二进制之间的转换
传统方式(原始方式)
十进制转二进制:除二取余
二进制转十进制: a0 * 2^0 + a1 *2^1 + a2 + 2^2 + ..... //a0,a1....表示从右到左二进制中每一位的数
2》八进制和二进制之间转换
三位二进制 对应 一位八进制, 转换时按3对1方式转换
例如:
八进制数: 0125 ---- 二进制:001 010 101
1 ---- 001
2 ---- 010
5 ---- 101
二进制数:101101001 ----- 八进制 :0551
从右到左三位分为一组:101 101 001 ---- 5 5 1
3》十六进制和二进制转换
四位二进制 对应 一位十六进制, 转换时按4对1方式转换
例如:
十六进制数:0x15c7 -------二进制:0001 0101 1100 0111
1 ------ 0001
5 -------0101
c -------1100
7 -------0111
二进制数:11011110001101 十六进制: 0x378d
从右到左四位分为一组:11 0111 1000 1101 = 3 7 8 d
2.2浮点型常量
1》浮点表示法
例如: 3.14 2.56 7.38
2》e计数表示法
例如: 3.4E2 (3.4x10^2) 3.4e2 (3.4x10^2) 3.4E-2 (3.4x10^-2)
2.3字符型常量
在c语言中,字符用单引号' '括起来,表示一个字符
字符分两种:
1》可见字符 -----能够打印到屏幕上的字符
例如: 'a' 'b' 'c' 'x'
2》不可见字符 -----不能够打印到屏幕上的字符,属于功能型字符
例如: '\a' '\b' '\n' '\r'
因为计算机中只能存储0和1,对于字符不能直接存储,需要给每个字符编码,存储字符时,实际上存储的是对应的编码值。
对于不可见字符,除了可以用字符表示形式外,也可以用对用的编码表示
例如:007 7 07 BEL '\a' (bell)
2.4字符串常量
字符串常量指的是多个字符组成的系列,通常用双引号" "表示。
例如: "hello" "world" "大家好" "隔壁老王" "a"
c语言中,在存储字符串时,会在最后一个字符的后面自动添加一个'\0',最为字符串的结束标志。
所以,字符串"a",在存储的时候,除了 'a'的编码外,还会存'\0'的编码。
2.5符号常量
在c语言中,用#define定义的符号,用来表示一些常量,把这个符号称为符号常量。
例如: #define PI 3.1415 PI称为符号常量,在程序中代表着3.1415
3.变量
定义变量,必须要说明变量的数据类型,在c语言中,不同的数据类型用不同的关键字来表示。
如下:
char ------- 字符型(1个字节)
short ------- 短整型(2个字节)
int ------- 整型(4个字节)
long ------- 长整型(8个字节)
long long ------- 长长整型(8个字节)
float ------- (单精度)浮点型(4个字节)
double ------- (双精度)浮点型(8个字节)
long double ------- 长(双精度)浮点型(16个字节)
bool / _Bool -------- 布尔型(1个字节) , bool使用时,需加头文件 #include <stdbool.h>
4.数据类型转换
当不同类型的数据在一起参与运算时,需要先将这些数据转换为相同类型,然后进行运算。
在C语言中有两种类型转换方式:隐式转换和强制转换
隐式转换:由系统自动转换,默认将小类型转换为大类型
强制转换:强制转换:在数据前加(要转换的类型) ,例如: float a = 3.4; (int)a //将a中的数据从内存中取出,转为int
(仅一小部分,不全) |
|