面向01编程
码龄3年
  • 9,341
    被访问
  • 27
    原创
  • 92,728
    排名
  • 9
    粉丝
关注
提问 私信

个人简介:散修

  • 毕业院校: 东北大学秦皇岛分校
  • 加入CSDN时间: 2019-10-29
博客简介:

chs的博客

查看详细资料
  • 3
    领奖
    总分 361 当月 5
个人成就
  • 获得14次点赞
  • 内容获得7次评论
  • 获得21次收藏
创作历程
  • 21篇
    2022年
  • 6篇
    2021年
成就勋章
TA的专栏
  • C语言
    17篇
  • 课程设计
    2篇
  • 笔记
    6篇
  • 硬件
    6篇
兴趣领域 设置
  • 开发工具
    idevscode
  • 数据结构与算法
    数据结构
  • 后端
    scala
  • 嵌入式
    arm
  • 硬件开发
    fpga开发
  • 操作系统
    windowsharmonyoslinuxcentosrisc-v
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C语言进阶17-常用表格汇总

1.1 常用的printf格式代码:格式代码含义%d以十进制形式打印一个整型值%o以八进制形式打印一个整型值%x以十六进制形式打印一个整型值%g打印一个浮点值%c打印一个字符%s打印一个字符串
换行1.2 整形变量的最小范围:类型最小范围char0~127signed char-127~127unsigned char0~255short int-32767~32767uns
原创
发布博客 2022.02.26 ·
343 阅读 ·
0 点赞 ·
0 评论

C语言进阶16-标准函数库

16.1 整形函数这组函数返回整型值。这些函数分为3类:算术,随机数,和字符串转换。16.1.1 算术<stdlib.h>标准函数库包含了4个整型算术函数:int abc( int value ); //返回它参数的绝对值-整型long int labs( long int value ); //放回它参数的绝对值-长整型div_t div( int numerator, int denominator );ldiv_t ldiv( long in
原创
发布博客 2022.02.26 ·
434 阅读 ·
0 点赞 ·
0 评论

C语言进阶15-I/O函数

前言:与早期C相比,ANSI C 的一个最大的进步就是它的规范里包含了函数库。每个ANSI编译器必须支持一组特定的函数,并规范所要求的接口,而且按照规定的行为工作。ANSI编译器并未禁止在它们的函数库的基础上增加其他函数。但是,标准库函数必须根据标准所定义的方式执行。如果关心可移植性问题,只要避免使用任何非标准函数就可以。15.1 错误报告1、perror函数(定义在 stdio.h中) ** 以一种简单的、统一的方式报告错误。ANSI C函数库的许多函数调用操作系统来完成任务,尤其是输入输出函数。当操
原创
发布博客 2022.02.23 ·
359 阅读 ·
0 点赞 ·
0 评论

C语言进阶14-预处理器

14.1 预处理器和预定义符号编译一个c程序第一步就是预处理,预处理就是源代码编译前对其进行一些文本操作。主要的任务为删除注释,插入被#include的文件内容,定义和替换#define指令定义的符号,确定代码的部分内容是否应该根据一些条件编译指令进行编译 。预处理器符号符号示例值含义__FILE__“name.c”进行编译的源文件名–调试有用__LINE__23文件当前行号–调试有用__DATE__“jan 22 2022”文件被编译的日期__TI
原创
发布博客 2022.02.22 ·
277 阅读 ·
0 点赞 ·
0 评论

C语言进阶13-高级指针

13.1 指向指针的指针的指针实例:int i;int *pi;int **ppi;printf( "%d
", ppi ); //如果ppi是个自动变量,那么它未被初始化,将答应一个随机值。如果是静态变量,打印0. //ppi未初始化之前,他的存储单元的内容不可知printf( "%d
", &ppi ); //将ppi的存储单元的地址打印出来,这个值没什么用*ppi = 5; //错误,不能对未初始化的指针执行间接访问操作ppi = &pi
原创
发布博客 2022.02.22 ·
433 阅读 ·
0 点赞 ·
0 评论

C语言进阶12-链表

12.1 链表通过组合使用 结构 和 指针 创建强大的数据结构。链表(linked list)就是一些包含数据的独立数据结构(通常成为节点)的集合 。通常节点是通过动态分配的,但是也可以通过节点数组构建链表。即使在这种情况下,程序也是通过指针遍历链表的。12.2 单链表在单链表中,每个节点包含一个指向链表下一个节点的指针。链表最后一个节点为NULL指针。为了记录链表的起始位置,可以使用一个跟指针(root pointer)。跟指针指向链表的第一个节点。 单链表只能单向遍历,各个节点分布在内存的各个地
原创
发布博客 2022.02.22 ·
329 阅读 ·
0 点赞 ·
0 评论

C语言进阶11-动态内存分配

11.1 动态内存分配数组被声明时,必须要在编译时知道它的长度。动态分配内存允许程序为一个长度在运行时才知道的数组分配内存空间。11.2 malloc&freeC语言函数库提供了malloc和free两个函数,分别执行动态内存的分配和释放。这些函数维护一个可用的内存池。原型分别为:void *malloc( size_t size );void free( void *pointer );1、调用malloc函数时,malloc从内存池中提取一块合适的内存,并返回一个只想这块内存的指针
原创
发布博客 2022.02.21 ·
88 阅读 ·
0 点赞 ·
0 评论

C语言进阶10-结构和联合

10.1 结构基础知识1、聚合结构类型( aggregate data type )能够同时存储一个以上的单独数据。C语言提供了两种类型的聚合类型数据结构(数组和结构)。2、数组是相同类型的元素集合,每个元素可通过下标引用或者指针间接访问。3、结构可以是不同类型元素的集合,这些值成为它的成员(member)。因为成员类型不同,所以不能通过下标访问成员。只能通过成员名字来访问。4、结构变量属于标准变量类型,可以对待其他标准变量执行相同类型的操作。因为结构变量是一个标量,所以指向结构的指针不能进行指针运
原创
发布博客 2022.02.21 ·
83 阅读 ·
0 点赞 ·
0 评论

C语言进阶9-字符串

9.1 字符串基础1、除了字符串常量,其它字符串都必须存储于字符数组或者动态分配的内存中。2、字符串的长度并不包括NUL字节,就是它包括的字符串的个数。3、头文件<string.h>包括了使用字符串函数所需的原型和声明。4、库函数strlen的原型如下:size_t strlen( char const *string ); 。size_t类型是在头文件<stddef.h>中定义的,是一个无符号整数。注: 如果表达式中同时包括有符号数和无符号数,那么会产生奇怪的结果,按需求
原创
发布博客 2022.02.21 ·
89 阅读 ·
0 点赞 ·
0 评论

C语言进阶8-数组

8.1 一维数组8.1.1 数组名数组名的值是一个指针常量(这个值不能被更改),其值为第一个数组元素的地址。它的类型取决于数据元素的类型:如果他们是Int 类型,那么数组类型名就是指向整型的常量指针。但是这两种情况数组名并不用指针常量来表示。1、当数组作为sizeof操作符的或者单目运算&的操作数时。sizeof返回整个数组的长度,而不是指向数组指针的长度。&取一个数组名的地址产生的是一个指向数组的指针,而不是指向某个指针常量的指针。int a[10], b[10], *c;c
原创
发布博客 2022.02.20 ·
26 阅读 ·
0 点赞 ·
0 评论

C语言进阶7-函数

7.1 函数的定义7.1.1 函数定义函数定义同时描述了函数的参数列表和函数体(花括号里的语句)。如果函数内没有任何语句,那么该函数就叫做存根,他在测试不完整程序十分有用,操持程序在结构上的完整性。函数声明:K&R声明风格没有参数列表,现在一般不用这种方式。新的声明风格声明的函数又称为函数原型例子:/* 在整型数组中寻找特定的值的存储位置,并返回一个指向该位置的指针。*/int *find_int( int key, int array[], int array_len ){
原创
发布博客 2022.02.20 ·
82 阅读 ·
0 点赞 ·
0 评论

C语言进阶6-指针

6.1 内存和地址1、计算机的内存由数以亿万的位(bit)构成,每个位可以容纳0或1。2、现在计算机通常以字节Byte --(8bit)为基本单位,每个字节都有它的地址。为了存储更大的数据,把多个字节拼在一起,如四个字节构成一个字。尽管一个字包含了多个字节,但是这个字还是只有一个地址,至于具体是最高字节的地址还是最低字节的地址来表示,不同的机器有不同的规定。3、还有一个需要注意的硬件事项:边界对齐 要求边界对齐的机器上整型值的存储位置的起始地址 只能是某些特定的字节,一般是4的整数倍。4、高级语言提
原创
发布博客 2022.02.19 ·
28 阅读 ·
0 点赞 ·
0 评论

C语言进阶5-操作符和表达式

5.1 操作符操作符分为:1、算数操作符(除%只适合整数,其他既适合整数也适合浮点数):+ - * / %2、移位操作符(两个操作数都必须是整数):>> <<注意:严禁这种写法 sa << -5; 不能为负数。3、位操作符(操作数为整数):& | ^ ~​ a.把指定位置1 : value |= 1 << (which_bit - 1);​ b.把指定位置0 :value &= ~(1 &l
原创
发布博客 2022.02.18 ·
146 阅读 ·
0 点赞 ·
0 评论

C语言进阶4-语句

4.1 空语句空语句本身只包含一个分号,表示不执行任何任务。例:while( getchar() != '
') ;4.2 表达式语句C语言并不存在专门的赋值语句,赋值在表达式里面进行。注意下面语句也是合法的:x * 4; getchar();第一条语句虽然被执行但是没有任何效果,计算得到的结果并没有被保存下来。printf("hello,world!"); 这条语句也跟上面类似,printf也有返回值(它实际打印字符的个数) 由于不关心这个值所以弃之不理。4.3 switch语句例:
原创
发布博客 2022.02.17 ·
133 阅读 ·
0 点赞 ·
0 评论

C语言进阶3-数据

3.1 基本数据类型变量的3个属性:作用域,链接属性,存储类型。C语言仅含有4种基本数据类型:整形,浮点型,指针,聚合类型(如数组和结构等)。其他类型都是这几种类型的组合派生。3.1.1 整型家族1、整数类型 包括:字符,短整型,整形,长整型。它们都有signed和unsigned两种版本。整形变量的最小范围:类型最小范围char0~127signed char-127~127unsigned char0~255short int-32767~
原创
发布博客 2022.02.17 ·
68 阅读 ·
0 点赞 ·
0 评论

C语言进阶2-基本概念

2.1环境在ANSI C的任意一种实现中,存在两种环境。1、翻译环境(translation environment):源代码被转换为可执行机器指令的环境。2、执行环境(execution environment):实际执行代码的环境。这两种环境可以不在同一台机器上,例如:交叉编译器(cross compiler)所产生的可执行代码可以在不同的机器上运行。拓展:C语言由Dennis M. Ritchie在1973年设计和实现。从那以后使用者逐渐增加。到1978年Ritchie和Bell实验室的另一
原创
发布博客 2022.02.17 ·
160 阅读 ·
0 点赞 ·
0 评论

C语言进阶1-Pointers On C

1.1 简介1.1.1 注释(comment)1、程序开头的注释的作用:告诉读者程序能做什么以及怎么做。2、每段代码都尽可能加上注释,即使这段代码只有一条简单的语句。因为如今最大的软件开销不是编写代码而是维护代码,在修改一段代码时第一时间搞清代码的功能十分重要;因此代码注释的正确性和时效性也就十分重要。3、有些语言把一些不需要的代码直接注释掉,表示这些代码在程序中不起作用;但是在C语言,尽量避免这种做法,特别是代码中本来就含有注释,这样做往往不能如愿。更好的办法是用预编译指令#if实现。如下:#i
原创
发布博客 2022.02.16 ·
141 阅读 ·
0 点赞 ·
0 评论

verilog实现算术逻辑单元ALU

根据mips指令集实现能进行12种算数逻辑运算单元,不支持例外处理。模块输入包括两个操作数和选择进行何种运算的 片选信号(alu_control) 和一个结果输出端口。结果输出端用了一个无优先级的多路选择器实现结果选择。12种运算类型分别为:加法减法有符号比较小于置为1无符号比较小于置为1与,非或,或,异或四种逻辑运算逻辑左、右移算数右移置寄存器高16位具体代码如下:module alu ( input [11:0] alu_control, input
原创
发布博客 2022.02.01 ·
632 阅读 ·
1 点赞 ·
0 评论

多路选择器verilog实现

简单实现一个,五个片选信号,每个数据宽度为8bit。(ps:使用时注意被选择信号的初始化)module mux5_8b ( input [7:0] in0,in1,in2,in3,in4, input [2:0] sel, output [7:0] out); //if sel is binary coding ,use next: assign out = ({8{sel==3'd0}} & in0) |({8{
原创
发布博客 2022.01.27 ·
557 阅读 ·
1 点赞 ·
0 评论

8-3编码器verilog实现(无优先级)

一个8-3编码器** 代码如下:**module encoder_8_3( input [7:0] in, output [2:0] out); assign out = ({3{in[0]}} & 3'd0) |({3{in[1]}} & 3'd1) |({3{in[2]}} & 3'd2) |({3{in[3]}} & 3'd3)
原创
发布博客 2022.01.27 ·
332 阅读 ·
1 点赞 ·
0 评论
加载更多