当前位置: 首页 > news >正文

学习笔记|printf函数的实现|不同操作系统中的换行|数的进制:2进制、10进制、16进制转换|STC32G单片机视频开发教程(冲哥)|第五集:C语言基础

文章目录

  • 1.C语言 printf函数的实现
    • Tips:ASCII码表
    • Tips:找不到头文件怎么办?
    • 主函数添加程序:
    • 常规用法:
      • Tips:不同操作系统中的换行
  • ⒉数的进制:2进制、10进制、16进制.
    • 常见的对应:
    • 应用:整体端口的操作
  • 3.C语言常用运算符
  • 1、算术运算符
  • 2、位运算符
    • 测试代码
  • 4.数据的基本类型
  • 总结
  • 课后练习:自己练习一下printf的用法。

1.C语言 printf函数的实现

printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf(“<格式化字符串>”, <参量表>) [1] 。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
STC32中对printf重新进行了实现。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Tips:ASCII码表

在这里插入图片描述

Tips:找不到头文件怎么办?

冲哥视频附带的每课测试程序会用到一些头文件,都在每课资源包的COMM文件夹中,打开工程后options-C251加入lib path中即可 :
在这里插入图片描述

之后重新编译,代码通过。
注意:开始本节程序代码添加前,必须有一次正确的编译。

主函数添加程序:

		if( DeviceState != DEVSTATE_CONFIGURED ) 	//continue;if( bUsbOutReady ){usb_OUT_done(); //接收应答(固定格式)//用户需执行的printf代码段}

常规用法:

			printf("%03.3f\r\n",1.12);printf("%u \r\n",1<<3);

打开上节课写过的demo:0.Sample -CDC,重命名为:C-Printf的实现,打开工程,并编译,无问题,无警告。
注册COMM引用的头文件需采用冲哥视频配套配件,与最新版的头文件存在差异,会造成编译失败。
打开STC-ISP,重复延时选2-3s,因为CDC串口生成需要点时间。
可以勾选每次下载前都先发送自定义命令和当目标文件变化时自动装载并发送下载命令,下载至开发板。
在这里插入图片描述
选USB一CDC/串口助手:
在这里插入图片描述
可以看到串口返回了数据(文本模式),后期可以通过printf实现温度等数据的打印输出。

Tips:不同操作系统中的换行

在Windows系统中我们输入回车时,输入的字符是\r\n,unix系统中回车为\n, mac系统中回车的字符为\r。
一个16进制的数代表一个字符,以字符“0”为例,16进制为30,转换为十进制是48:
在这里插入图片描述
在这里插入图片描述

⒉数的进制:2进制、10进制、16进制.

常见的对应:

在这里插入图片描述
在这里插入图片描述

16进制的f代表了2进制里的4个位,
在这里插入图片描述
二进制转为10进制的计算方法:在这里插入图片描述
在这里插入图片描述
10进制转16进制,可以用10进制数先除以16,得到整数15,对应“f”(十位)。
在这里插入图片描述
剩余11,对应b,所有251对应fb,和计算器结果相符:
在这里插入图片描述

2进制转16进制数,4位一组(2^4=16)对应1个16进制数,之后按位对应即可:

在这里插入图片描述

应用:整体端口的操作

设置P2点灯代码为:P2 = 0xED; //11101101

3.C语言常用运算符

1、算术运算符

加(+)减(—)乘(*)除(/)
模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负
自增(++i,–i;i++,i–)

2、位运算符

右移(>>)左移(<<)
按位与(&)
按位或(|)
按位异或(^)
取反(~)

测试代码

			printf("%u \r\n",1<<1);printf("%u \r\n",1<<2);printf("%u \r\n",1<<3);printf("%u \r\n",0x11 & 0x10); //printf("%u \r\n",0x11 | 0x10); //printf("%u \r\n",~0x11); //

代码运算结果:
在这里插入图片描述

左移运算:
在这里插入图片描述
代码运算解析:
在这里插入图片描述

4.数据的基本类型

在这里插入图片描述

总结

1.学会printf的格式化输出(后面会反复用到)
2.了解进制数
3.学会加减乘除等运算符
4.了解数据类型和数值范围

课后练习:自己练习一下printf的用法。

http://www.lryc.cn/news/118967.html

相关文章:

  • 线性代数复习公式整理(自用/持续更新)
  • QEMU源码全解析34 —— Machine(4)
  • 引用Boost库 CMakeList的写法
  • Kibana 可视化数据分析以及es常用的数据分析函数
  • golang云原生怎么学?
  • Jenkins+Nginx+vue
  • 【vue 监听页面滑动到底部】
  • (一)创建型设计模式:2、单例模式(C++实现实例 线程安全)
  • 《练习100》86~90
  • C++——命名空间、输入、输出
  • 解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路
  • Permutation and Primes 2023牛客暑期多校训练营8 J
  • centos如何配置IP地址?
  • git clone 报错Filename too long
  • 【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台3
  • redis String类型命令
  • Blazor 简单组件(0):简单介绍
  • 在vue3+vite项目中使用jsx语法
  • HCIA 路由器工作原理 及其 静态路由配置
  • 【Git】—— git的配置
  • [git] git基础知识
  • 【从零学习python 】15.深入了解字符串及字符集编码
  • 【LeetCode】打家劫舍||
  • 【Nginx】Nginx的重定向——location
  • 每日一题——滑动窗口的最大值
  • 【使用go开发区块链】之获取链上数据(03)
  • js 动态设置transformOrigin
  • docker使用tab无法自动补全命令
  • 既然jmeter也能做接口自动化,为什么还需要pytest自己搭框架?
  • Objective-C获取变量类型的方法