自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 2. 程序编译的四个阶段

0.引言hello.c(源程序)是一条高级C语言程序,虽然它是以一种易读的形式,让人们容易理解。但是,它却无法直接驱动硬件CPU直接执行。为了我们编写的hello.c程序可以被执行,驱动硬件电路工作,hello.c程序必须经过一些列处理步骤,将源程序转化为可执行性的目标程序。而我们知道,机器语言就是处理器可以直接理解(与生俱来就能理解)的编程语言,机器语言有时也被叫做原生代码(Native Code

2018-07-28 22:53:14 18418 1

原创 partone---第六章 函数

partone---第六章 函数

2017-10-25 23:11:53 458

原创 2. 《活着》

我说在旁人眼里福贵的一生是苦熬的一生;可是对于福贵自己,我相信他更多地感受到了幸福。意大利伟大的贺拉斯告诉我:“人的幸福要等到最后,在他生前和葬礼前,无人有权说他幸福。”贺拉斯的警告让我感到不安,我努力说服自己:以后不要再去议论别人的人生。 1. 徐福贵没有三杯两盏淡酒,怎会知道,原来笑中,还可以带泪。你不讨厌,可是全无用处。百无一用的地主少爷徐福贵出人意料地娶到了十分漂亮、知书达理的米行老板千

2017-04-03 11:06:49 1067

原创 1.计算机是怎么跑起来的

《《计算机是怎么跑起来的》》 这本书的定位是:一本科普类入门级的计算机基础类读物。本书提出了一个大家“显而易见”的一个道理,个人很赞同这样方法—分三步走:1. 划一个“知识的范围”,精通这门学问所必知的知识范围; 2. 掌握这个范围内知识点中的“基础中的基础知识”; 3.最后就是可以独当一面的终极目标:掌握了这些知识可以做什么? 菜鸟程序员入门的进阶 中级程序员查漏补缺 高

2017-04-03 10:50:37 1720

转载 3.如何为Eclipse安装主题(Color Theme)

最近做php环境转到Eclipse上,开发环境默认都是白底黑字的, 时间长了眼睛很难受,于是找了eclipse color theme安装。方法1:你可以从Eclipse Marketplace中下载Please visit here: http://eclipsecolorthemes.org/?view=plugin进去以后可以看到这个界面 http://eclipsecolortheme

2017-03-21 20:41:19 1238

转载 1. java对象 引用

Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: class Vehicle {

2017-03-01 17:13:06 362

转载 对寄存器ESP和EBP的一些理解

PS:EBP是当前函数的存取指针,即存储或者读取数时的指针基地址;ESP就是当前函数的栈顶指针。每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈,以便从子函数返回到主函数时可以获取EBP。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码 假设执行函数前堆栈指针ESP为0xAAAAAAA ;EBP为0x

2017-03-01 12:37:14 473

原创 cpu、内存、硬盘、指令间的关系

题目:写一篇文章,建议描述cpu、内存、硬盘、指令间的关系。引言:前些时间,读了一本关于计算机科普的书籍—《《计算机是怎么跑起来的》》,这本书的第一章大致给出了计算机cpu、内存、硬盘和指令间的大致轮廓,现在就这四者之间的关系梳理下,以加深理解。 剔除掉现今所使用的计算机表面外壳,我们深究到计算机的基本内部构造,会发现它的原理是非常简单的。首先介绍一下计算机的三大原则[1]:A.计算机的三个根本

2017-02-25 21:50:23 2614

原创 PID调节参数的作用

PID调节参数的作用比例控制能迅速反应误差,从而减小稳态误差。但是,比例控制不能消除稳态误差。比例放大系数的加大,会引起系统的不稳定。比例控制是一种最简单的控制方式。其控制的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。积分控制的作用是,只要系统有误差存在,积分控制器就不断地积累,输出控制量,以消除误差。因而,只要有足够的时间,

2017-01-16 16:10:11 7708 1

原创 2017年计划

2017年度计划

2017-01-01 22:06:53 656 2

原创 4.检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式

error: 晚上用vs2010运行程序,出现如下的错误:error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format解决办法,非常简单可以解决:方法一,用editplus打开,再复制回VS方法二:在VS中,点文件->高级保存选项,然后在行尾选项中选择window

2016-11-17 23:12:51 4201 1

转载 3. 深入理解递归

递归最重要的一点就是假设子问题已经解决了,现在要基于已经解决的子问题来解决当前问题。递归之所以把问题变简单了,是因为相当于多给你了一个前提条件(尽管是假设的)。大家都知道,递归的本质和栈数据的存取很相似了,都是先进去,但是往往最后处理!再者对于递归函数的局部变量的存储是按照栈的方式去存的,对于每一层的递归函数在栈中都保存了本层函数的局部变量,一边该层递归函数结束时能够保

2016-11-12 16:15:04 1476

转载 4. 8个月从CS菜鸟到拿到Google Offer的经历+内推

投了肯定有100家以上,一共面了30家,11个onsite,前7次都挂了,后4次拿到了3家大公司和一家startup的Offer,最后从了G家。我的背景,国内软件工程混沌过了4年,毕业时连Java,C++的main都分不清,一共没写过100行代码,CS基础知识是极度零散与凌乱的。误打误撞读了CS 一

2016-11-12 15:49:46 2360

原创 1.BF 朴素的模式匹配算法

复习串的朴素模式匹配算法模式匹配 :子串定位运算,在主串中找出子串出现的位置。在串匹配中,将主串 S 称为目标(串),子串 T 称为模式(串)。如果在主串 S 中能够找到子串 T, 则称匹配成功,返回 第一个 和 子串 T 中 第一个字符 相等 的 字符 在主串 S 中的 序号,否则,称匹配失败,返回 0。 算法思想:从主串 S 的第 pos 个字符起和模式 T 的第一个字符比

2016-11-08 16:20:28 859

原创 3. 笔试题---苏州绿控

苏州绿控1.变量的声明和定义 变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。 2.函数的作用? 一个函数就可以看成一个模块。当用到某个函数功能时,就直接调用相关的函数。 函数是C程序最基本的功能单位。 3.分层+模块化的优缺点? 各模块相对独立、功能单一、结构清晰。 层次的缺点: 使系

2016-10-23 14:11:31 1124

原创 2.长川科技

1. 数组str[10] sizeof(str)和strlen(str) char *str1="absdhfghfe"; char str2[]="absde"; char str3[8]={'a'}; char ss[] = "0123456789"; cout<<"str1 "<<sizeof(str1)<<endl; cout<<"str2 "<

2016-10-13 23:15:03 797

原创 排序--5.归并排序

1. 基本思想将包含n个元素的初始序列,看成n个有序的子序列,每个序列的长度为1,然后两两归并...直到得到长度为n的有序序列。递归和非递归两种方法 // 5. 归并排序--递归(recursion) //融合 void merging(int *list1, int list1_size,int* list2,int list2_size) { int temp[10]

2016-10-12 12:41:28 351

原创 排序--4. 堆排序

1.堆排序的基本思想将待排序的序列构成一个大顶堆。 此时,序列的最大值就是堆顶的根结点。 将它移走(就是,将其与堆数组的末尾元素交换,此时末尾的元素就是最大值),然后将剩余的n-1个序列重新构成一个堆,......如此反复。其中关键问题:: 1) 如何将无序序列构成一个堆 2) 输出堆顶元素后,如何调整升序元素为一个堆 代码://4.堆排序//堆调整void HeapAjust(in

2016-10-11 17:10:28 354

原创 #4. 堆排序

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-10-11 16:44:23 381

原创 排序--3.希尔排序

1. 希尔排序思想 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 希尔排序的基本思想是: 把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。 随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。//3.希尔排序 void s

2016-10-09 23:20:07 505

原创 排序--2.直接插入排序

1. 直接插入排序思想 构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序的实现上,从后向前扫描,需要反复把已排序元素逐步向后移动,为最新元素提供插入空间 // 2. 插入排序 //`默认一个元素是有序的 // 三个 元素拿出来;符合条件后移;插入 void InsertSort(int *a,int num) { int te

2016-10-07 22:36:36 405

原创 排序--1.简单选择排序

选择排序的基本思想: 对n个记录进行扫描,选择最小的记录将其输出,接着在剩下的n-1个记录中扫描,选择最小的记录将其输出,……不断重复这个过程,直到剩下最后一个记录为止。//1.简单选择排序 void selectSort(int a[],int num) { int min=0,temp=0;//记录最小数对应的下标 for(int i=0;i<num-1;i++)

2016-10-07 21:44:10 520

原创 C语言中死循环的三种写法

C语言中死循环的三种写法1.while(1){        ;}2.for(; ;){       ;}3LOOP:......goto LOOP;第一种写法明显比第二种写法的效率要高,第三种常用在嵌入式编程中

2016-10-04 23:13:00 10212

原创 1.进程和线程、多态

2016.9.28 海航科技 1. 进程和线程的区别1)l 程序是代码的集合;进程:代码的一次执行(包含多个线程)。     l 线程:进程中一个独立的单一的执行流程。 2) 进程是一个独立功能的程序,关于某个数据集合的一次运行活动状态。它可以申请和拥有系统资源,是一个活动的实体。包括程序的代码还包括当前的活动,如:程序计数器的值和处理寄存器的内容来表示。一个进程中包含若干

2016-09-28 17:31:22 928

原创 1. C/C++如何动态从键盘输入

1. int main23(){ int n,*a; cin>>n; a=new int [n]; for (int i=0;i<n;++i) cin>>a[i]; for (int i=0;i<n;++i) cout<<a[i]<<" "; cout<<endl; system("pause"); return 0;}2. vInt v,vec;/

2016-09-06 17:27:35 5588

原创 关于单片机中断模块的心得体会

单片机中断的理解。1.首先52单片机里6个中断源(比51多一个T2),具体如下图1.1所示。图1.1  52单片机6个中断源在这里我们需要注意的是,定时系统是单片机硬件的组成部分,52单片机引脚如图1.2所示。   由图1.2可以看出功能复用的引脚,比如T2/P1.0、T0/P3.4等。为什么我们在单片机定时中断程序中看不到响应中断函数的子函数呢?这正是它的巧妙之处!

2015-01-28 11:03:28 4958

空空如也

空空如也

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

TA关注的人

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