<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shanchangyi的博客]]></title><description><![CDATA[学海无涯]]></description><link>https://blog.youkuaiyun.com/shanchangyi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shanchangyi]]></copyright><item><title><![CDATA[git 常用命令]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/79754872</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/79754872</guid><author>shanchangyi</author><pubDate>Fri, 30 Mar 2018 11:18:26 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[HTTP报文详解]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/54956889</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/54956889</guid><author>shanchangyi</author><pubDate>Thu, 09 Feb 2017 21:11:48 +0800</pubDate><description><![CDATA[HTTP报文：它是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头，这些信息描述了报文的内容及含义，后面跟着可选的数据部分。这些报文都是在客户端、服务器和代理之间流动。

 

HTTP报文的流动方向：一次HTTP请求，HTTP报文会从“客户端”流到“代理”再流到“服务器”，在服务器工作完成之后，报文又会从“服务器”流到“代理”再流到“客户端”

 

报文的]]></description><category></category></item><item><title><![CDATA[STM32定时器 正交编码]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52681954</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52681954</guid><author>shanchangyi</author><pubDate>Tue, 27 Sep 2016 16:35:51 +0800</pubDate><description><![CDATA[编码器分类： 
按工作原理：光电式、磁电式和触点电刷式 
按码盘的刻孔方式：增量式和绝对式两类 
由于博主接触面还不是很广，一共就用过两个种类的编码器，都是属于光电的 
差分编码器:一般由8根线连接 信号线分别为 A+ A- B+ B- Z+ Z- 以及VCC和GND 
这里有一种不需要Z信号的，6线差分A+ A- B+ B- VCC 和GND 
正交编码器：一般是5根线连接，信号线分]]></description><category></category></item><item><title><![CDATA[TCP 三次握手四次挥手]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52681928</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52681928</guid><author>shanchangyi</author><pubDate>Tue, 27 Sep 2016 16:33:27 +0800</pubDate><description><![CDATA[TCP/IP协议三次握手与四次握手流程解析
 
一、TCP报文格式
  TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图：

图1 TCP报文格式
  上图中有几个字段需要重点介绍下：
  （1）序号：Seq序号，占32位，用来标识从TCP源端向目的端发送的字节流，发起方发送数据时对此进行标记。
  （2）确认序号：Ack序号，占32位，只有AC]]></description><category></category></item><item><title><![CDATA[C可变参数函数 实现]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52681891</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52681891</guid><author>shanchangyi</author><pubDate>Tue, 27 Sep 2016 16:31:03 +0800</pubDate><description><![CDATA[C函数要在程序中用到以下这些宏:
void va_start( va_list arg_ptr, prev_param ); 
type va_arg( va_list arg_ptr, type ); 
void va_end( va_list arg_ptr ); 
 
va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数列表中的]]></description><category></category></item><item><title><![CDATA[判断两个单链表是否有交点]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52648562</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52648562</guid><author>shanchangyi</author><pubDate>Sat, 24 Sep 2016 10:13:03 +0800</pubDate><description><![CDATA[问题描述：
一个比较经典的问题，判断两个链表是否相交，如果相交找出他们的交点。


思路：
1、碰到这个问题，第一印象是采用hash来判断，将两个链表的节点进行hash，然后判断出节点，这种想法当然是可以的。
2、当然采用暴力的方法也是可以的，遍历两个链表，在遍历的过程中进行比较，看节点是否相同。
3、第三种思路是比较奇特的，在编程之美上看到的。先遍历第一个链表到他的尾部，然后将尾部]]></description><category></category></item><item><title><![CDATA[进程间的几种常用通信方式]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52592977</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52592977</guid><author>shanchangyi</author><pubDate>Tue, 20 Sep 2016 09:48:34 +0800</pubDate><description><![CDATA[进程间通信就是在不同进程之间传播或交换信息，那么不同进程之间存在着什么双方都可以访问的介质呢？进程的用户空间是互相独立的，一般而言是不能互相访问的，唯一的例外是共享内存区。但是，系统空间却是“公共场所”，所以内核显然可以提供这样的条件。除此以外，那就是双方都可以访问的外设了。在这个意义上，两个进程当然也可以通过磁盘上的普通文件交换信息，或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义]]></description><category></category></item><item><title><![CDATA[ARM7三级流水线详解]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52590024</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52590024</guid><author>shanchangyi</author><pubDate>Mon, 19 Sep 2016 22:22:31 +0800</pubDate><description><![CDATA[看到汇编中很多关于程序返回与中断返回时处理地址都很特别，仔细想想原来是流水线作用的效果。所以，决定总结学习下ARM流水线。

ARM7处理器采用3级流水线来增加处理器指令流的速度，能提供0.9MIPS/MHz的指令处理速度。

PS:

MIPS（Million Instruction Per Second）表示每秒多少百万条指令。比如0.9MIPS，表示每秒九十万条指令。

MI]]></description><category></category></item><item><title><![CDATA[TI面试  销售岗和 AE岗]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52454345</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52454345</guid><author>shanchangyi</author><pubDate>Tue, 06 Sep 2016 22:50:07 +0800</pubDate><description><![CDATA[昨天TI来校园招聘，参加招聘会的人非常多，后面都坐满人了，可见大家还是比较关注这家公司的，我之前在网站上注册了简历投的是技术销售类，然后现场投简历选的AE，晚上收到销售的面试电话，第二天上午收到AE的电话，而且一个下午三点一个下午四点OrZ。中午在图书馆大厅和小伙伴们聊了下天，我竟然聊着就睡着了·······果然是成大事者（滑稽）。
   下午先群面，12个人一组，全是男生而且个个西装革履，尼玛]]></description><category></category></item><item><title><![CDATA[华为面试]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52300928</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52300928</guid><author>shanchangyi</author><pubDate>Wed, 24 Aug 2016 16:47:40 +0800</pubDate><description><![CDATA[昨天刚参加完华为优招的面试，写一篇博客记下来过程与经历。（嵌入式软件）
大概一周前参加的华为上机考试，一共三到编程题两个小时，第一道是输入16进制字符串，以0x开头，abcdef大小写都可以，转换为十进制字符串输出，难度不大，很快做出。
第二题是输入一句话，单词用空格和逗号句号隔开，输出不同的单词，以空格隔开，小有难度写完以后还有一个小时的时间，但是四个case只跑完了一半，就调试呗，VS20]]></description><category></category></item><item><title><![CDATA[代码总结 2]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52234158</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52234158</guid><author>shanchangyi</author><pubDate>Wed, 17 Aug 2016 21:49:14 +0800</pubDate><description><![CDATA[1、 蛇形 输出
#include
using namespace std;
void getresult( int n){
    int p[1000][1000];
    int count=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<=i;j++)
            p[i-j][j]=++count;
    }
   ]]></description><category></category></item><item><title><![CDATA[链表 堆栈 队列]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52230441</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52230441</guid><author>shanchangyi</author><pubDate>Wed, 17 Aug 2016 14:11:31 +0800</pubDate><description><![CDATA[1、链表  的创建 加入 删除 遍历 等 ······ 
    #include 
#include 

typedef struct student
{
    int num;
    struct student *next;

}node;

node* creat();
int length(node* n);
void print(node* n);
node* insert(no]]></description><category></category></item><item><title><![CDATA[代码总结]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52230139</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52230139</guid><author>shanchangyi</author><pubDate>Wed, 17 Aug 2016 14:09:48 +0800</pubDate><description><![CDATA[1、    输入N个字符，字符在ACSII码范围内(0~127)。
#include
#define N 128

int main()
{
    int i=0,count=0;
    int ASIC[N]={0};
    char input[500];
    gets(input);

        while(input[i]!='\0')
        {]]></description><category></category></item><item><title><![CDATA[排序 自己总结 自己写代码]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52230081</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52230081</guid><author>shanchangyi</author><pubDate>Wed, 17 Aug 2016 13:27:17 +0800</pubDate><description><![CDATA[第一种 直接用快速排序 
头文件    sort ( 
begin,end ),begin,end为地址，#include
int  main()
{
 int a[20]={2,4,1,23,5,76,0,43,24,65},i;
 for(i=0;i<20;i++)
  cout<<a[i]<<endl;
 sort(a,a+20);
 for(i=0;i<20;i++)
 cout<<a]]></description><category></category></item><item><title><![CDATA[平衡车 制作过程 （持续更新）]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52180294</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52180294</guid><author>shanchangyi</author><pubDate>Thu, 11 Aug 2016 10:37:12 +0800</pubDate><description><![CDATA[先将平衡车控制任务分解为三个基本的动作：
1：保持平衡。
      通过控制两个电机的正反向转动来调节平衡。
2：控制小车的速度。
    调节小车的倾斜角度来实现速度控制，实际上最后演变为控制电机的转速来实现车轮速度的控制。
3：控制小车的方向。
    通过控制小车的速度差，即转速差值来控制方向。
将复杂的问题分解为三个小的问题。]]></description><category></category></item><item><title><![CDATA[IIC  学习笔记 这次懂了]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52143133</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52143133</guid><author>shanchangyi</author><pubDate>Sun, 07 Aug 2016 16:25:31 +0800</pubDate><description><![CDATA[IIC总线
一般串行数据通讯都有时钟和数据之分,有异步和同步之别.
有单线,双线和三线等.

I2C肯定是2线的(不算地线).

I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.

I2C的原则是:

在SCL=1(高电平)时,SDA千万别忽悠!!!

否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".

在SC]]></description><category></category></item><item><title><![CDATA[IIC与SPI学习总结  未完待续]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52130090</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52130090</guid><author>shanchangyi</author><pubDate>Fri, 05 Aug 2016 16:05:30 +0800</pubDate><description><![CDATA[1. 综述：
  GPIO　和　SPI　都是嵌入式智能设备最常用的外设接口。
1）外在的都是GPIO引脚，控制时都是mcu通过引脚控制高低电平
2）没有SPI时，可以用GPIO模拟
3）但是SPI有自己的优势，串行 全双工 同步通信，故符合SPI协议的硬      件，肯定首先考虑SPI接口。
２.GPIO：
1).数量众多，且结构简单
2)许多设备只需要开关两种状态就够了
3)控]]></description><category></category></item><item><title><![CDATA[二叉树 数据结构]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52117478</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52117478</guid><author>shanchangyi</author><pubDate>Thu, 04 Aug 2016 11:14:47 +0800</pubDate><description><![CDATA[一、基本概念


每个结点最多有两棵子树，左子树和右子树，次序不可以颠倒。

性质：


1、非空二叉树的第n层上至多有2^(n-1)个元素。

2、深度为h的二叉树至多有2^h-1个结点。


满二叉树：所有终端都在同一层次，且非终端结点的度数为2。


在满二叉树中若其深度为h，则其所包含的结点数必为2^h-1。


完全二叉树：除了最大的层次即成为一颗满]]></description><category></category></item><item><title><![CDATA[用位运算实现+-操作]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52105058</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52105058</guid><author>shanchangyi</author><pubDate>Wed, 03 Aug 2016 16:44:24 +0800</pubDate><description><![CDATA[int add(int a,int b)
{


 int sum,carry;
 //b=(~b)+1;                     // 加上这句话就是减法，因为负数在计算机中是以补码的形式存在的
  do
  {
    sum=a^b;
    carry=(a&b)<<1;
    a=sum;
    b=carry;
  }while(carry!=0);

  retu]]></description><category></category></item><item><title><![CDATA[剑指offer 中问题的眼前一亮的解法]]></title><link>https://blog.youkuaiyun.com/shanchangyi/article/details/52097500</link><guid>https://blog.youkuaiyun.com/shanchangyi/article/details/52097500</guid><author>shanchangyi</author><pubDate>Tue, 02 Aug 2016 20:21:35 +0800</pubDate><description><![CDATA[1、两个栈实现一个队列。
2、青蛙跳一级台阶和二级台阶，与斐波那契数列的关系。
3、从尾到头打印链表，用递归实现。
4、删除链表的节点，二重指针的复习。
5、n位数的打印，鲁棒性。
6、合并两个排序链表，递归。
7、abcd全排列 递归
8、数组的前k个最小数
9、丑数。2、3、5
10、在数组中第一个只出现一次的数
11、函数指针  实现1+2+3+·······+n； p2]]></description><category></category></item></channel></rss>