嵌入式学习第二天

发布时间:2024年01月19日

1.进制转换:

二进制、八进制、十进制、十六进制包含的数分别如下:

????????二进制:0 1

????????八进制:0 1 2 3 4 5 6 7?

? ? ? ? 十进制:0 1 2 3 4 5 6 7 8 9

? ? ? ? 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f

二进制、八进制、十六进制转十进制,采用按权展开再求和的方法。

十进制转二进制、八进制、十六进制,采用十进制除以进制数得到的余数逆序排列。

二进制转八进制、十六进制,八进制一位对应二进制三位,十六进制一位对应二进制四位。

2.程序如何在C语言中被运行起来?

??? 程序(外存中)
????执行(加载到内存中)
????程序运行结束(回收内存空间)


3.数字在内存中的存储:


????正数在计算机中存放对应的二进制数
????负数在计算机中存放补码
????????1.原码
????????2.反码??
????????3.补码
????????4.内存数据

4.gcc编程的流程步骤

gcc filename.c

1.预处理

? ? ? ? 处理和#相关的代码,如头文件展开,宏定义替换和条件编译等。

2.编译

????????将C语言程序编译成汇编代码

????????gcc?-S?filename.c?-o?filename.s?

3.汇编
????????将汇编代码编译成二进制代码

????????gcc?-c?filename.c?-o?filename.o?

????4.链接?
????????将多个二进制代码链接成为一个可执行程序

????????gcc?filename.c?-o?filename

2.基本数据类型、运算符和表达式

1.数据类型分类


????????1.基本数据类型:
????????????整形数据?short?int?long?
????????????????????short?(signed?short)
??????????????????????????unsigned?short?
????????????????????int???(signed?int)
??????????????????????????unsigned?int?
????????????????????long??(signed?long)
??????????????????????????unsigned?long?

????????????浮点型数据?float?double?
????????????字符型?char
????????????逻辑类型(泊尔类型)?bool?
????????????缺省类型(void)
????????
? ??2.构造数据类型:
????????????结构体
????????????共用体
????????????枚举类型

????3.基本数据类型
????????1.整数类型:

名称占内存空间值域范围??存储方式
short:?短整形?2个字节空间???-32768?-?32767补码

unsigned?short

无符号短整型?

2个字节空间?0?-?65535?对应的二进制数
?int:???整形4个字节空间?-21亿?-?21亿补码

unsigned?int?

?无符号整形

4个字节空间??0?-?42亿?对应的二进制数
long: 长整型??8个字节空间-2^63?-?2^63?-1补码

?unsigned?long:

??无符号长整型

8个字节空间?0?-?2^64??对应的二进制数

2.浮点数类型:
????????????所有的浮点数类型均为有符号类型,没有无符号类型的概念。

名称?占内存空间值域范围?存储方式

float

单精度浮点数类型(最多表示6-8位有效数字)

4个字节

-3.4*10^38?-?1.18*10^-38?

1.18*16^-38?-?3.4*10^38

1位符号位?+?8位指数位?+?23位尾数位

double??

双精度浮点数类型(最多表示12-14位有效数字)

8个字节

-1.80*10^308?-?2.23*10^-308?

2.23*10^-308?-?1.80*10^308

1位符号位?+?11位指数位?+?52位尾数位


????????????浮点数?->?二进制形式?->?科学计数法转换?->?小数点后存入尾数位中?->?指数位+偏移数(float:127?double:1023)以二进制形式存入指数位中?

????????????IEEE754?
????????????和整数存储方式完全不同

3.字符型:
????????????char?
????????????a?..?z
????????????A?..?Z?
????????????#???..?

????????????ASCII码表:
????????????字符和数字的对应关系

????????????a?->?97?

????????????名称????????????????内存空间大小????????????????值域范围????????????存储方式?
????????????unsigned?char???????1个字节????????????????????0?-?255?????????????存储字符在ASCII码表中对应数字的二进制形式?
????????????signed?char?????????1个字节????????????????????-128?-?127?

????????4.逻辑类型:
????????????bool?

????????????名称????????????????内存空间大小????????????值域范围????????????????存储方式?
????????????泊尔类型?bool???????1个字节?????????????????true????????????????????1
???????????????????????????????????????????????????????false???????????????????0

????????????在C语言中所有的非0值均为逻辑真值
????????????????????????????0值为逻辑假值

????????5.缺省类型:
????????????void?

????????????搭配函数和指针使用

????????????void?a;

2.常量和变量:


????????1.常量:?在程序运行过程中值不允许发生改变的量
????????2.变量:?在程序运行过程中值可以发生改变的量
????????3.表达式:由一个或者多个运算符连接的变量和常量组成的式子

????1.整形常量:
????????默认为int类型

????????100?????????int类型
????????100l????????long类型
????????100u????????unsigned?int类型?
????????100ul???????unsigned?long类型
????????100L?
????????100U?
????????100UL?

????????0123????????八进制常量
????????0x1a????????十六进制常量
????????0X1A

????2.整形变量:
????????1.变量要先定义再使用
????????????1.变量定义的形式:
????????????????数据类型?变量名;

????????????????1.变量名可以由字母、数字、下划线构成不能以数字开头
????????????????2.变量名不能与C语言关键字重名
????????????????3.变量名最好不要与库函数重名
????????????????4.变量名最好是见名知意?
????????????????????
????????????????????驼峰法:
????????????????????int?TempNum;
????????????????????int?MaxCnt;
????????????????????int?MinNum;
????????????????????int?AvgScore;

????????????????????内核法:
????????????????????int?temp_num;
????????????????????int?max_cnt;
????????????????????int?min_cnt;
????????????????????int?avg_score;

????????2.变量拥有存储空间,也有值域范围

????3.?浮点型常量:
????????默认为double类型?

????????3.1415??????????double类型
????????3.1415f?????????float类型?
????????3.1415e8
????????3.1415e-8
????????3.1415E8
????????3.1414E-8?

????4.?浮点型变量:
????????double?d;
????????float?f;

????5.字符型常量:
????????'a'?'A'
????????'z'?'Z'
????????'?'?'#'
????????'~'?'?'
????????'\''?:?'号
????????'\n'?:?换行符
????????'\t'?:?横向制表符
????????'\v'?:?纵向制表符
????????'\r'?:?回车符
????????'\b'?:?退格符
????????'\\'?:?\符?
????????'0'
????????'1'??:?字符1?
????????'2'??
????????'3'
????????'4'
????????'5'
????????'6'
????????'7'
????????'8'
????????'9'?
????????'\0'?:?字符\0

????????'1'?->?ASCII码表?->?49??????
????????1???:?1

????????'0'??:?48?
????????0????:?0
????????'\0'?:?ASCII码值为0?用来标识字符串的结尾

????????'\123'?:?八进制123对应的字符
????????'\x32'?:?十六进制32对应的字符??

文章来源:https://blog.csdn.net/m0_63793814/article/details/135631904
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。