嵌入式学习第二天

发布时间:2024年01月17日

?C语言基础:

1.进制转换

二进制、八进制、十六进制?->?十进制?
????????对应位?*?对应位的权值再求和
十进制?->?二进制、八进制、十六进制
????????十进制数除以进制数得到的余数逆序排列
二进制?八进制?十六进制:
????八进制1位对应二进制3位
????十六进制1位对应二进制4位

2.gcc编译的流程步骤:

gcc?filename.c?
1.预处理
????????处理和#号相关代码
? ? ? ? (1)头文件展开
????????#include?
? ? ? ? (2)宏定义替换
????????#define??M??100??
? ? ? ? (3)条件编译 gcc?-E?filename.c?-o?filename.i?
????????#if?#elif?#else?#endif?#ifndef?#ifdef??
????2.编译
????????将C语言程序编译成汇编代码 gcc?-S?filename.c?-o?filename.s?
????3.汇编
????????将汇编代码编译成二进制代码 gcc?-c?filename.c?-o?filename.o?
????4.链接?
????????将多个二进制代码链接成为一个可执行程序?gcc?filename.c?-o?filename?

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

(1)基本数据类型:
????????????整形数据?short?int?long?
? ? ? ? ? ? ? ? ? ?short?(signed?short)
??????????????????????????unsigned?short?
????????????????????int???(signed?int)
??????????????????????????unsigned?int?
????????????????????long??(signed?long)
??????????????????????????unsigned?long?
? ? ? ? ? ? ???名称? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?占内存空间??????????值域范围? ? ? ? ? ? ? ? ? ? 存储方式
????????????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?double, 所有的浮点数类型均为有符号类型,没有无符号类型的概念

???名称? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ??占内存空间大小? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?值域范围??

? ? 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)以二进制形式存入指数位中? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?(3)字符型:char?

? ? ? ? ? ? ? ASCII码表:
????????????字符和数字的对应关系
?????名称?????????????内存空间大小???? ?值域范围????????????存储方式?

unsigned?char???????1个字节??????????0?-?255?????????????存储字符在ASCII码表中对应数字的二进制形式?
??signed?char?????????1个字节? ? ? ??-128?-?127?
(4)逻辑类型:?bool?

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

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

4.常量和变量:

(1)整形常量:
????????默认为int类型
????????100?????????int类型
????????100l????????long类型
????????100u????????unsigned?int类型?
????????100ul???????unsigned?long类型

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

(2)整形变量:(变量拥有存储空间,也有值域范围)
????????1.变量要先定义再使用
????????????1.变量定义的形式:
? ? ? ? ? ? ? ? (1)变量名可以由字母、数字、下划线构成不能以数字开头
? ? ? ? ? ? ? ? (2)变量名不能与C语言关键字重名
? ? ? ? ? ? ? ? (3)变量名最好不要与库函数重名
? ? ? ? ? ? ? ? (4)变量名最好是见名知意?

?(3)?浮点型常量:
????????默认为double类型?
????????3.1415??????????double类型
????????3.1415f?????????float类型?

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

? (5)字符型常量:

'a'? ?'A'? ?'z'? ?'Z'? '?'? ?'#'? '~'? ?'?'
?'\''?:?'号'? \n'?:?换行符? '\t'?:?横向制表符? '\v'?:?纵向制表符? '\r'?:?回车符? '\b'?:?退格符? '\\'?:?\符?

? ? ? ?'0'??:?48?
????????0????:?0
????????'\0'?:?ASCII码值为0?用来标识字符串的结尾
????????'\123'?:?八进制123对应的字符
????????'\x32'?:?十六进制32对应的字符?

?(6)字符型变量:
????????char?ch;

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