自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

兰天禄的博客

持续学习 不断成长

  • 博客(114)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux 常用命令

我收集常用的Linux命令1. 创建连接文件a、创建软连接(相当于快捷方式)ln -s 源文件名 连接文件名特点: 1、源文件 和 连接文件 时刻同步 2、一旦删除源文件 那么连接文件 将不可用, 如果删除的是连接文件 那么原文文件 是可用)b、创建硬链接ln 源文件名 连接文件名特点: 1、源文件 和 连接文件 时刻同步 2......

2020-03-06 22:41:59 421 1

原创 SQL常用语句大全

SQL

2022-08-30 00:44:36 369

原创 Qt存储图片到数据库&&从数据库读取图片

QSqlite 保存图片 读取QSqlite图片

2022-05-20 18:03:46 1411

原创 QT串口通信

QT串口的使用1. 添加头文件串口通信的7个步骤1. 添加头文件#include <QtSerialPort/QSerialPort>#include <QtSerialPort/QSerialPortInfo>在工程文件中添加串口组件QT += serialport然后定义一个串口对象QSerialPort *serial;串口通信的7个步骤设置串口名(如COM1)serial = new QSerialPort;serial->s

2021-07-08 09:01:12 712

转载 一、从零学习 C++

c++语法检查增强C++中所有的变量和函数必须有类型以上c代码c编译器编译可通过,c++编译器无法编译通过更严格的类型转换c++对结构体的增强1、c中定义结构体变量需要加上struct关键字,c++不需要2、c中的结构体只能定义成员变量,不能定义成员函数。c++即可以定义成员变量,也可以定义成员函数C语言:struct stu{ int num; char name[32];/* c语言 不允许在结构体中 定义成员函数 void func(void)

2021-04-06 17:22:09 221

原创 STM32_SysTick—系统定时器

SysTick学习SysTick可以参考:《Cortex-M3 内核编程手册》-4.5 章节 SysTick Timer(STK),和 4.48 章节SHPRx,其中 STK 这个章节有 SysTick 的简介和寄存器的详细描述。因为 SysTick 是属于CM3 内核的外设,有关寄存器的定义和部分库函数都在 core_CM3.h 这个头文件中实现。所以学习 SysTick 的时候可以参考这两个资料,一个是文档,一个是源码。SysTick 简介SysTick—系统定时器是属于 CM3 内核中的

2021-02-26 21:01:12 2978 1

原创 W25QXX使用教程

W25QXX是华邦公司生产的一块FLASH储存芯片那W25Q256为例:驱动方式:单路双路四路SPI、QSPI;擦写周期:10W次支持电压:2.7~3.6V频率:单路最大104Mhz、双路208Mhz、四路416Mhz容量:容量为32M字节;它将32M的容量分为512个块(Block),那么每个块的容量就是64K字节;每个块又分为16个扇区(Sector),每个扇区4K个字节;那我们需要给W25Q256开辟一个至少4K的缓存区,这样对SRAM要求较高,芯片必须有4K以上的SRAM才能很好的

2021-01-24 19:28:46 7168

原创 STM32外部中断

中断都知道是怎么回事了外部中断是怎么配置的呐?外部中断又称IO中断/事件控制器(EXTI)外部中断/时间控制器包含19个边沿检测器,用于产生中断/时间请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿)并能够单独地屏蔽:有一个挂起寄存器维持所有中断请求的状态。EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用IO口连接到16个外部中断线。STM32F1支持将所有GPIO设置为中断输入。外部IO可由上沿,下沿,高低电平的三种方式触发。可选择中断或事件触发。

2021-01-10 21:00:30 473

原创 STM32的时钟

外部时钟:4 - 16MHz的外部晶体振荡器:连接引脚PD0-OSC_IN 和 PD1-OSC_OUT内部时钟:内嵌出厂8MHz的RC振荡器(ARM内核使用)     内嵌带校准的40KHz的RC振荡器(RTC时钟(实时时钟)使用,温漂大)     还可以外接32.768KHz晶振(RTC时钟(实时时钟)使用,温漂小)连接引脚:PC14-OSC32_IN 和 PC15-OSC32_OUTRC振荡器(通过电阻和电容产生的震荡器)例:NE555就是通过RC震荡产生时钟各振荡器的区别:产生CPU

2020-12-23 21:28:59 405 1

原创 沟通

沟通一、职场沟通,就是拉关系?二、高效沟通的三个要点:1.“沟”:准确,高效地传递信息2.“通”:有来有往,舒服地接收信息① 控制情绪,不阻断沟通② 放下评价,与对方共情3.会说话的人自带边界感三、三个技巧,让职场沟通无压力1.双线结构,制造言谈“意外感”接下来,我讲下“双线结构”的使用方法。2.自我吐槽,给予对方“优越感”一个完美的人,给人感觉是不真实,不安全的。人本身出于自我保护也会避开那些跟完美的人。自嘲的有哪些使用方法呢?① 要真的吐槽自己的缺点或窘境② 自嘲的缺点是自己能够接受的③ 处于高位的时候

2020-09-26 22:15:37 233

原创 GPIO寄存器

每组IO口有10个寄存器组成,如果芯片有GPIOA~GPIOI,9个组那么一共有90个寄存器如果配置一个IO口需要2个位,那么刚好32位寄存器配置一组IO口16个IO口如果配置一个IO口只需要1个位,一般高16位保留BSRR寄存器32位分为低16位BSRRL和高16位BSRRH,BSRRL配置一组IO口的16个IO口的状态(1),BSRRH配置复位状态(0)。每组GPIO端口的寄存器包括:4个32位配置寄存器一个端口模式寄存器(GPIOx_MODER)一个端口输出类型寄存器(GPIOx_.

2020-08-30 13:56:37 5470 1

原创 GPIO的八种工作模式

四种输入模式输入浮空输入上拉输入下拉模拟输入四种输出模式(带上下拉)开漏输出(带上拉或者下拉)开漏复用功能(带上拉或者下拉)推挽式输出(带上拉或者下拉)推挽式复用功能(带上拉或者下拉)推挽输出可以输出强高低电平,链接数字器件;开漏输出只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流的驱动,其吸收电流的能力相对强。...

2020-08-14 10:36:17 3810

原创 Linux驱动概述

驱动1、驱动的概念1.1、驱动的概念1.2、驱动的定义与功能1.3、驱动程序与应用程序的区别1.4、应用/库/内核/驱动2、Linux驱动2.1、字符设备2.2、块设备2.3、网络设备2.4、设备文件3、应用程序如何通过设备文件找到设备驱动?4、linux模块编程4.1、使用模块的好处:1、驱动的概念1.1、驱动的概念1.2、驱动的定义与功能计算机系统中存在着大量的设备,操作系统要求能够控制和管理这些硬件,而驱动就是帮助操作系统完成这个任务。驱动相当于硬件的接口,它直接操作、控制着我们的硬件,

2020-08-01 09:36:09 396

原创 Linux内核开发

Linux内核1、Linux内核介绍2、内核结构分析3、Linux内核部分模块:4、Linux编程风格4.1、缩进4.2、花括号使用如下4.3、命名规范4.4、代码长度4.5、注释4.6、在程序中对ifdef的处理4.7、其他4.8、代码风格的事后修正5、解Linux镜像的格式及其产生过程1、Linux内核介绍Linux内核是Linux系统软件的核心,它的性能对整个 系统的性能起决定作用Linux内核文件数目将近4万个,他们分别位于顶层 目录下的20个子目录中,了解Linux内核的工作过程, 必须从

2020-07-28 19:35:40 475

原创 Bootloader(启动引导程序)--->u-boot

BootloaderBootloader中文解释为:启动引导程序Bootloader的种类归纳:一些常用Bootloader做简单对比:arm系统的启动流程Bootloader中文解释为:启动引导程序Bootloader的种类归纳:分类标准说明针对不同 CPU架构1、针对X86架构的有LILO、GRUB、ntldr等 2、针对ARM架构的有vivi、armboot等 3、针对PPC架构的有ppcboot等 4、可以支持多种架构的u-boot等针对不同 操作系统1、专门用来

2020-07-25 11:56:58 4221

原创 arm裸机开发

GNU常用工具GNU组织不仅给我们带来了许多开源软件 工程,还带来了强大的GNU编译工具预处理器 cppC编译器 gccC++编译器 g++汇编器 as链接器 ld二进制工具集 objcopy、objdump、……1、nm:符号显示器$nm -n main_elf第一列为符号地址第二列为符号所在段第三列为符号名称段描述b/B.bss(b静态/B非静态)未初始化变量d/D.data(d静态/D非静态)已初始化变量r/R.rodata(

2020-07-20 21:11:04 3136

原创 交叉编译环境搭建

环境搭建1、串口连接2、配置交叉编译器1、查看当前系统是否支持arm-linux-gcc2、在/usr/local创建一个文件夹为arm3、将arm-linux-gcc-4.3.2.bz2解压到/usr/local/arm目录下4、进入到 /usr/local/arm5、将上面得到的目录添加到环境变量PATH中6、重启.bashrc脚本7、ubuntu搭建nfs服务器8、ubuntu挂载到开发板上将Cortex-AXX 开发板正确连接电脑查看是否正确连接,并记住端口右击此电脑 —>属性—>

2020-06-29 22:30:23 5113

原创 指针的高级应用

指针1、内存地址的概述2、指针变量3、指针变量的使用4、指针变量的初始化5、&取地址符 和 *指针解引用符 区别6、指针的注意事项7、数组元素的指针8、数组的[]和*()的关系9、arr 和 &arr的区别10、指向同一数组的两个元素的指针变量 间关系11、指针数组12、数组指针13、数组指针 与 二维数组的关系14、多级指针15、一维数组名作为函数的参数二维数组名作为函数的参数16、指针作为函数的返回值17、函数名 代表的是函数的入口地址1、内存地址的概述系统给内存的每一个字节 分

2020-06-28 16:20:55 456

原创 网络通信技术

网络编程1、网络的概述2、UDP协议编程1、网络的概述https://blog.csdn.net/weixin_43288201/article/details/1060832252、UDP协议编程https://blog.csdn.net/weixin_43288201/article/details/106185436

2020-06-27 17:54:58 158

原创 AJAX和CGI 技术的应用

AJAX 技术1、AJAX的概述AJAX局部更新网页流程图:异步流程:2、AJAX的通信过程2.1、创建xmlHttpRequest对象1、AJAX的概述AJAX 不是语言 而是(基于js和xml)技术概述:1、AJAX是 Asynchronous JavaScript And XML的缩写2、AJAX 是一种用于创建快速动态网页的技术3、AJAX 不是新的编程语言,而是一种使用现有标准的新方法4、AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页

2020-06-24 22:11:51 1887 3

原创 HTML和JavaScript的简单使用

这里写目录标题1、网页HTML概述1.1、元信息标记1.2、文字标签1.3、标题1.4、超链接1.5、table表格标签1.6、form表单2、JavaScript的概述(让网页动起来)2.1、什么是 Javascript2.2、网页使用js脚本的三种方式直接添加脚本使用script标记插入脚本链接脚本文件(推荐)js能用的运算符2.3、js的函数2.4、JS的对象2.4.1、浏览器对象(window对象)2.4.2、文本对象(Document对象)(重要)案例1:登录界面 value案例2: docume

2020-06-23 18:19:24 1053

原创 代码管理工具git的使用教程

代码管理工具git1、git的概念代码管理工具的分类代码管理工具的作用:git的特点2、git工作流程3、git的安装在ubuntu下安装4、git的配置4.1、 三种配置级别4.2、配置信息5、基本操作5.1、初始化仓库(1)git的四个区域(2)初始化本地仓库5.2、 查看区域状态5.3、将指定的文件提交到暂存区5.4、将暂存区的文件提交到本地仓库5.5、查看commit日志5.6、比本地文件和本地仓库中文件的区别6、恢复操作6.1、从本地仓库恢复本地文件6.2、丢弃工作区的修改6.3、本地仓库文件的移

2020-06-23 10:04:51 1358

原创 BS开发(浏览器和服务器开发)

BS开发概述1、概述2、什么是B\S架构B/S架构 与 C/S架构对比3、环境搭建4、网页HTML概述4.1、1、元信息标记4.2、文字标签4.3、标题4.4、超链接4.5、table表格标签4.6、form表单1、概述浏览器 通过服务器控制联网的设备HTML:超文本标记语言 静态的 显示网页CSS:层叠样式表 渲染网页XML:指可扩展标记语言 传输网页Javascript:脚本语言 和 网页交互 (局部刷新网页)AJAX:基于Javascript语言的技术 (将网页 和

2020-06-18 20:32:33 5964

原创 服务器搭建(Apache)

Apache环境搭建1、软件下载1.1、JDK下载1.2、Apache tomcat下载2、文件上传到服务器3、环境配置3.1、首先要安装JDK3.2、安装Apache1、软件下载服务器:(JDK+tamcat)本机:putty,winSCP;1.1、JDK下载下载连接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 1.2、Apache tomcat下载下载连接:http://tomcat

2020-06-18 20:08:10 563

原创 原始套接字的学习(用原始套接字 发送普通udp信息)

用原始套接字 发送普通udp信息1、组mac头部:2、组IP头3、组UDP头ubuntu 发送udp数据 到windows上1、组mac头部:unsigned char msg[1024]=""; //1、组mac头部 struct ether_header *eth_addr = (struct ether_header *)msg; //赋值目的mac地址 memcpy(eth_addr->ether_dhost, dst_mac, 6); //赋值源mac地址 memcpy(

2020-05-22 21:29:23 883

原创 原始套接(ARP协议的使用)

原始套接字1、创建原始套接字2、原始套接字发送数据(sendto)2.1、本机的接口地址结构2.2、获取我们的本地接口案例1:扫描mac地址 (要知道ARP协议)案例2 扫描整个局域网的mac地址案例:ARP欺骗1 (数组逐个元素组包)案例:ARP欺骗2 (结构体完成)1、以太网结构体2、ARP 头部原始套接字(SOCK_RAW)1、一种不同于SOCK_STREAM、SOCK_DGRAM的套接字,它实现于系统核心2、可以接收本机网卡上所有的数据帧(数据包),对于监听网络流量和分析网络数据很有作用3、

2020-05-22 21:07:51 680

原创 原始套接字(各种协议的分析)

原始套接字1、原始套接字的概述什么是原始套接字(SOCK_RAW)1.1、UDP封包格式1.2、IP封包格式1.3、Ethernet封包格式1.3、TCP封包格式1.5、ICMP封包格式:ping1、创建原始套接字(socket)案例:数据包的分析链路层数据格式1、原始套接字的概述什么是原始套接字(SOCK_RAW)1、一种不同于SOCK_STREAM、SOCK_DGRAM的套接字,它实现于系统核心2、可以接收本机网卡上所有的数据帧(数据包),对于监听网络流量和分析网络数据很有作用3、开发人员可发

2020-05-22 20:10:46 2396

原创 socket编程(TCP)

TCP面向链接编程TCP协议的特点1、TCP客户端1.1、创建tcp套接字1.2、做为客户端需要具备的条件1.3、connect链接服务器的函数1.4、send函数1.5、recv函数**案例:TCP客户端**2、TCP服务器做为TCP服务器需要具备的条件2.1、listen 函数2.2、accept函数案例:3、TCP的三次握手 四次挥手3.1、TCP的三次握手 客户端 connec函数调用的时候发起3.2、四次挥手 调用close 激发 底层发送FIN关闭请求3.3、close 关闭套接字4、TCP并

2020-05-18 20:41:20 328

原创 Wireshark使用教程(抓包工具)

Wireshark使用教程1、安装2、使用3、过滤规则:1、安装一路next2、使用选择使用的网络(一般选择波动较大的就是使用的那个网络)数据发送之前打开抓捕工具开始抓包在发送数据之前 运行抓包工具 当数据发送之后 记得停止抓包3、过滤规则:协议过滤:写上协议名称tcp udp icmp ip arp tftpand 条件同时成立, or 只要有一个满足就行 ip.addr==10.221.1.1,只要ip地址是10.221.1.1都要接受ip.src==10.221.

2020-05-18 19:10:01 213

原创 socket编程(udp)

socket1、创建socket套接字2、IPv4套接字地址结构sockaddr_in3、通用地址结构:struct sockaddr4、sendto函数 发送udp数据5、bind函数 让套接字 拥有一个固定的IP、端口信息6、recvfrom接受数据UDP_QQ程序设计1、创建socket套接字int socket(int family,int type,int protocol);功能: 创建一个用于网络通信的socket套接字(描述符)参数: family:协议族(AF_I

2020-05-18 18:56:03 4070 1

原创 字节序的详细讲解

字节序1、字节序的特点2、字节序转换函数2.1、htonl函数 发 将主机字节序的IP地址 转换成网络字节序的IP地址2.2、ntohl函数 收 将网络字节序的IP地址3.3、htons函数 发 将主机字节序的端口 转换成 网络字节序的端口3.4、ntohs函数 收 将网络字节序的端口 转换成 主机字节序的端口总结:3、地址转换3.1、inet_pton函数 发 将点分十进制数串 转换成 32位网络字节序地址(大端格式)案例:3.2、inet_ntop函数 收 将32位网络字节序IP 转换成 点分十进

2020-05-18 08:16:05 3074

原创 网络编程(理论看这一篇就够了)

计算机网络概述1、数据交换1.1、最早的广域网(电路交换)1.2、分组交换(又称存储转发交换,报文交换)交换方式(存储-转发)2、网络的分层结构2.1、七层模型:OSI/RM开放互联模型(理论上的标准)2.2、四层模型:TCP/IP协议3、协议的说明3.1、IP协议 网际协议(网络层)3.2、TCP协议 传输控制协议 (传输层)3.3、UDP协议 用户数据报协议 (传输层)4、地址介绍4.1、mac地址(链路层) 设备和设备的通信(48位6个字节,12个16进制数)4.2、IP地址IPv4 (网络层) 主机

2020-05-12 21:58:55 341

原创 音乐播放器mplayer的简单使用

mplayer1、mplayer的安装2、mplayer的键盘模式基本控制键:3、Slave模式:启动方法一:在终端下敲命令来启动mplayerMplayer 在slave模式下常用的命令:启动方法二:在进程中调用exec启动Mplayer程序。案例:父进程 控制 子进程的mplayer案例:获得mplayer的回应1、mplayer的安装sudo apt-get updatesudo ...

2020-04-29 20:20:24 7242 1

原创 Linux 多任务编程之线程

这里写目录标题1、线程概述进程是系统分配资源的基本单位。线程是CPU调度的基本单位。线程是轻量级的进程(LWP:light weight process)1、线程概述在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行 什么,只是维护应用程序所需的各种资源,而线程则是真正的执行实体。 所以, 线程是轻量级的进程(LWP:lightweightprocess),在Linux环...

2020-04-29 14:06:39 148

原创 Linux 进程通信 -下 (信号)

信号1、信号的概述查看信号:kill -l每个信号必备4要素,分别是:未决信号集合 信号阻塞集2、信号的API2.1、 kill函数案例:2.2、raise函数 (自杀)2.3、abort函数2.4、alarm函数(闹钟)2.5、setitimer函数(定时器)3、修改信号的处理动作(了解)信号处理方式捕捉信号并且信号信号的处理方式有两个函数,signal 和sigaction1、signal函数...

2020-04-27 23:48:24 114

原创 Linux 进程通信 -上 (有无名管道,消息队列,mmap,共享内存)

进程间的通信14、进程间的通信方式(重要!!)15、无名管道(重要)案例:无名管道的特点:调用write函数向管道里写数据,当缓冲区已满时write也会阻塞设置为非阻塞: fcntl(fd, FSETFL, O_NONBLOCK);15、文件描述符复制 dup dup2案例1:我让标准输出文件描述符1 指向磁盘文件案例3:实现 ps -aux | grep bash(理解)16、dup217、...

2020-04-26 23:02:12 304

原创 Linux 多任务编程之进程

多任务编程1、进程的概述(了解)1.1、程序和进程的区别:1.2、并发和并行的区别:并行(parallel):并发(concurrency):总结:2、进程控制块PCB(了解)进程内存布局:32位平台 系统 会为每一个进程 分配4G空间3、进程的状态(了解)三态:就绪态、等待态、执行态 (以及状态转换)就绪态:执行条件都准备了 等待CPU的调用等待态:等待执行条件的满足执行态:cpu正在调度进...

2020-04-26 09:25:18 227

原创 Linux文件IO操作

文件操作1、系统调用概述2、系统调用 和 库函数的区别(重要!!!)3、文件描述符(重要!!!)案例:读取文件数据4、文件的打开读写关闭4.1、打开文件open4.1.1、flags宏的介绍(打开方式)4.1.2、mode的介绍(权限)4.2、关闭文件close案例:4.3、文件的写操作write4.4、read读取文件数据案例:读文件数据案例:实现cp命令: cp src_file ds...

2020-04-21 21:29:37 1859

原创 shell脚本语言(超全超详细)

shell脚本语言1、shell的概述2、脚本的调用形式打开终端时系统自动调用:/etc/profile 或 ~/.bashrc3、shell语法初识3.1、定义以开头:#!/bin/bash3.2、单个"#"号代表注释当前行第一步:编写脚本文件第二步:加上可执行权限第三步:运行三种执行方式 (./xxx.sh bash xxx.sh . xxx.sh)./xxx.sh......

2020-04-20 22:26:20 188264 34

原创 Qt的绘图系统(画家,绘图工具,绘图设备)

Qt的绘图系统绘图概念案例:画一个背景图(画家的方法)案例:通过update()重新加载绘图事件2、画家的其他绘制函数1、划线drawLine2、画矩形3、画圆3、绘图设备案例1:QBitmap案例2:image的像素操作案例:重现绘图指令QPicture绘图概念图系统基于QPainter,QPainterDevice和QPaintEngine三个类QPainter(画家) 使用QPain...

2020-04-19 09:42:29 1233

零死角玩转stm32.zip

非常详细易懂的方式全面的讲解了STM32的各种资源功能(野火STM32)

2021-02-08

Linux内核移植.zip

linux内核发行的一bai般都是通用版本,代du码可以兼容很多的硬件平台,因为内核zhi代码中包含大部分硬件平台的dao驱动程序, 用户可以自己定制内核包含哪些设备的驱动,就像开关一样,可以打开/关闭一些编译选项来支持不同的硬件平台。 内核移植就是根据你自己选择的硬件平台来重新编译内核支持对应的硬件,使之可以在该硬件平台上运行,如果 缺少相应的硬件驱动程序或其他内核模块,可以自己进行相应的开发加入到内核中一起编译最终实现对硬件的支持。

2020-07-28

Bootloader应用分析+移植相关资料.zip

只是由于uboot本身是针对多种平台的bootloader,软件的复杂性和通用型决定了编译uboot需要自行填补很多坑。 U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。 我整理的关于u-boot的一些相关资料

2020-07-25

arm-linux-gcc-4.3.2.bz2

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc 在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段: 1. 预处理(Pre-Processing) 2. 编译(Compiling) 3. 汇编(Assembling) 4. 链接(Linking)

2020-06-29

tftpd32.exe

Tftpd32是一款专业高效的网络服务器包,包括DHCP服务器提供无限的自动或静态IP地址分配,同时Tftpd32提供TFTP客户端应用,支持tsize, blocksize 和 timeout等等。此外Tftpd32还有一些扩展功能,如目录设施,安全优化,界面过滤等。

2020-06-27

文件加密练习.zip

能读懂这一个程序就基本会程序操作了 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件中,则是将数值型数据的每一位数字作为一个字符以其ASCII码的形式存储,因此,文本文件中的每一位数字都单独占用一个字节的存储空间,

2020-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除