JulyShuofeng
码龄10年
求更新 关注
提问 私信
  • 博客:49,799
    49,799
    总访问量
  • 35
    原创
  • 11
    粉丝
  • 16
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:中国
加入CSDN时间: 2016-05-25
博客简介:

七月朔风

博客描述:
爬在路上的码虫
查看详细资料
个人成就
  • 获得15次点赞
  • 内容获得4次评论
  • 获得25次收藏
  • 代码片获得125次分享
  • 博客总排名1,860,650名
创作历程
  • 36篇
    2016年
成就勋章
TA的专栏
  • 数据结构
    6篇
  • C++
    2篇
  • linux
    3篇
  • 操作系统
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

兴趣领域 设置
  • 编程语言
    c++
创作活动更多

「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令

谁说嵌入式只会“Ctrl+C 调包”和“拿电烙铁焊板子”?2026嵌入式全栈技术征锋令正式启幕! 本次活动专为硬核硬件/软件开发者打造,无论你是刚玩转裸机外设的萌新,还是精通RTOS调度、死磕底层驱动的行业老手,亦或是执掌系统架构的大神,这里都是你证明实力的舞台! 拒绝表面功夫,每一行代码,都有撬动硬件的力量!晒出你的硬核工程实战,为嵌入式开发者的全栈硬实力正名!

210人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

巧用位运算求解二进制中1的个数

位运算是将数字化为二进制后,对每一位的0或1进行的运算。一般的运算有与&、或|、异或^和移位等。如何利用位运算来求解二进制中1的个数呢?首先大多数人想到的是先判断最右边的一位是不是1,接着将其右移一位,知道数为0停止。将一个数与上1则可以解决这个问题。代码如下:int NumofOne1(int num){ int count=0; while(num) { if(num&1) {
原创
博文更新于 2016.06.03 ·
1603 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C++中四个与类型转换相关的关键字

1 reinterpret_cast'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?)这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指向的内容不做任何类型的检查和转换。如果情况是从一个指针到整型的拷贝,内容的解释是系统相关的,所以任何的实现都
转载
博文更新于 2016.06.03 ·
518 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

struct和typedef struct详细解析

struct和typedef struct分三块来讲述:  1 首先://注意在C和C++里不同    在C中定义一个结构体类型要用typedef:    typedef struct Student    {    int a;    }Stu;    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)    这里的Stu
原创
博文更新于 2016.06.05 ·
300 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅析几个常见进程调度算法

今天来谈谈操作系统的几个常见的进程调度算法。那么第一步首先要了解什么是进程调度算法?简单来说就是根据系统的资源分配策略所规定的资源分配算法。举个例子来说明。假设任务一在执行完成后选择哪个任务来进行使得某一因素最小,这个因素可能是进程执行的总时间或是磁盘寻道时间等等。因此对于不同的系统目标有着不同的要求,要选择的调度算法也就不尽相同。接下来,就聊聊几个常见的进程调度算法。      Firs
原创
博文更新于 2016.06.05 ·
809 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

链表笔试题汇编(一)

题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。分析:删除结点可以从链表的头结点开始顺序遍历,发现某个结点的next指向要删除的结点时,将该结点的next指向要删除的下一个结点。但是基于这种思路,得到的时间复杂度是O(n)。删除结点只是让这个结点不出现在该链表中,可以采取覆盖的方式。也就是将下一个结点的内容复制到需要删除的结点上覆盖掉原有的内容。这样的话,就可以达到
原创
博文更新于 2016.06.04 ·
452 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux下的第一步——进度条(gcc&Makefile)

相信大家在初步学习C/C++的时候都写过“hello world”的代码。在学习了C/C++之后进入Linux系统的学习我们不用再从“hello world”这种入门级程序开始了,毕竟已经有了几年的小经验,但是重新开始在一个新的系统下编写代码,特别是对于Linux中庞杂的指令是需要一个熟悉与练习的过程的。进度条的小程序对于我们熟悉指令,练习VIM下代码的编辑以及gcc和Makefile等工具的使用
原创
博文更新于 2016.06.03 ·
777 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈字符串处理函数的实现(一)

C语言标准库中有许多处理字符串的库函数,例如strlen、strcpy、strcat、strcmp和strstr等等。这些库函数的实现使得我们平时处理字符串简单轻松了许多。那么这些库函数到底是怎样实现的呢?了解了其具体实现后,相信对于应用将更加得心应手,不会再出现参数调用出错,返回值不对等低级错误了。今天我先带大家了解了解其一,字符串拷贝函数strcpy。strcpy函数的原型是:char *st
原创
博文更新于 2016.06.03 ·
366 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈字符串处理函数(二)

上篇我们介绍了strcpy函数,但是strcpy函数是一个存在潜在危险性的函数。试想一下,如果我们事先给的目的字符串数组太小,而需要拷贝的源字符串长度大于目的字符串长度,此时这个函数会怎么办呢?所以,接下来我们介绍一个它的升级版strncpy函数。strncpy 是 C语言的库函数之一,把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。strncpy的
原创
博文更新于 2016.06.03 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈字符串处理函数(三)

前面我们谈到了strcpy和strncpy这两个函数。这两个函数都没有考虑到内存重叠,假如要考虑内存重叠,我们又该如何实现呢?所谓重叠,就是src未处理的部分已经被dst给覆盖了memcpy的函数原型如下:void *memcpy(void *dest, const void *src, size_t n);memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所
原创
博文更新于 2016.06.03 ·
341 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字符串转化为整数的算法改进及优化

我们知道C语言有一个库函数atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。那么如何实现这个函数呢?很多同学很快会写出下列代码:int StrtoInt(char str[]){ assert(str); int num=0; while(*str) { num=num*10+*str-'0'; ++str; } return
原创
博文更新于 2016.06.03 ·
429 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

字符串转化为整数的算法改进及优化

我们知道C语言有一个库函数atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。那么如何实现这个函数呢?很多同学很快会写出下列代码:int StrtoInt(char str[]){ assert(str); int num=0; while(*str) { num=num*10+*str-'0'; ++str; } return
原创
博文更新于 2016.06.03 ·
421 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++道路上的第一步

学习一门新的程序设计语言的最好方法就是联系编写程序。有了之前学习C语言的经验,又加上两者之间的共性,相信会得心应手一些。和学习C语言一样,我首先编写了一个简单的c++程序。#include#includeusing namespace std;int main(){ cout<<"helleo world"<<endl; system("pause"); return 0;}程序
原创
博文更新于 2016.06.03 ·
408 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

引用和指针的那些事儿

提到引用和指针这两个东西,很容易将两者混淆,而这个问题又是笔试题中的常客。今天,我们就来聊聊指针和引用的那些事儿。首先,指针和引用都是与地址相关的概念,然而在本质上却是存在大大的不同。指针是指向的是一块内存,指针里面存放的内容是它指向的那块内存的地址;而引用只是给那块地址重新起了一个别名而已,并没有为其分配任何内存空间。其次,我们知道引用只能在定义时初始化一次,之后不能改变其指向其他变量,而指针是
原创
博文更新于 2016.06.03 ·
708 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二维数组的查找

题目:在一个二维数组中,每一行都按照从左到右递增,每一列都按照从上到下递增,请完成一个函数,输入这样一个二维数组和整数,判断其中是否含有该数。代码:#include#include#define COL 4#define ROW 4using namespace std;bool find(int *arr,int columns,int rows,int num){ bool 
原创
博文更新于 2016.06.03 ·
373 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题:数值的整数次方

题目:实现函数double power(double base,int exp)求base的exp次方。不得使用库函数,同时不需要考虑大数问题。分析:pow函数我们已经使用过很多次,对于其函数原型我们也很熟悉。    double pow( double x, double y );    很快我们就会写出如下的代码:double MyPowerwithUnsigned(double base,i
原创
博文更新于 2016.06.03 ·
425 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

链表笔试题汇编(二)

题目:输入一个链表输出其倒数第k个结点。参考代码:LinkList *FindktoTail(LinkList *pHead,unsigned int k){ LinkList *L1=pHead; LinkList *L2=NULL; unsigned int i=0; if(pHead==NULL || k==0 ) { return NULL; } for(i=0 ; i
原创
博文更新于 2016.06.03 ·
396 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

应用栈求解迷宫问题(C++实现)

栈是数据结构中一种重要的线性结构,限定仅在表尾进行插入和删除操作的线性表,因此我们也可以认为它是一种特殊的线性表。由于栈的这个特点,我们又可以称其为后进先出的结构。如图所示:650) this.width=650;" src="/https://s1.51cto.com/wyfs02/M01/7E/DF/wKioL1cLi_vRu4ebAAARqXsqTA8989.png" title="捕获.PNG
原创
博文更新于 2016.06.03 ·
6352 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

一个数组实现两个栈

利用一个数组实现两个栈是数据结构中的一道经典面试题,那么如何来求解呢?大多数人为了方便都采取了静态实现方式,但是这种方式不能进行扩容,不够完美。博主利用C++尝试了一下动态实现。首先,通过了解栈的特点(后进先出),可以想到如下几个方案:First>>将数组的下标为奇数的位置都插入栈1的元素,数组的下标为偶数的位置都插入栈2的元素。这种方式插入删除时需要利用数组的下标来控制对栈1操作还是栈2操作,这
原创
博文更新于 2016.06.03 ·
639 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

简单剖析稀疏矩阵的转置

矩阵我们在线性代数中所学的一种有力的工具,可用它可以处理很多的工程问题。今天,我们不讨论矩阵本身,而是研究如何来存储矩阵,使得矩阵的运算能够更加高效。首先,我们了解矩阵中的一种特殊矩阵——>稀疏矩阵。那么什么是稀疏矩阵呢?如果在矩阵中,多数的元素为0,通常认为非零元素比上矩阵所有元素的值小于等于0.05时,则称此矩阵为稀疏矩阵(sparse matrix)。有时候为了节省存储空间,我们可以对这类矩
原创
博文更新于 2016.06.03 ·
1459 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

剖析linux下Find指令

无论在何种系统下,都需要进行查找。Windows下进行查找我们已经轻车熟路了,但是linux下该如何进行查找呢?今天我就来讲讲如何进行查找。通常情况下我们都是使用whereis和locate来进行查找的。但是如果遇到真的找不到的情况,就需要用find指令来进行查找了。但是使用find命令有一个缺点就是比较慢,因为whereis和locate都是利用数据库来查找数据的,速度相对来说是比较快的,但并没
原创
博文更新于 2016.06.03 ·
468 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多