自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(139)
  • 问答 (1)
  • 收藏
  • 关注

原创 如何判断一棵树是否为平衡二叉树

判断的思路很简单,若一棵树是平衡二叉树,它的左右子树都是平衡二叉树,并且左右子树的高度差小于等于1。注意,实现的时候,判断左右子树的平衡性时,可以顺便计算子树高度,不用再另外计算一次,下面是其递归实现:#include <iostream>using namespace std;struct TreeNode { int val; TreeNode *left; Tree

2017-07-12 18:14:42 1026

原创 编程实现2的1000次方

编程思路:因为结果数据太大,我们肯定不能用叠乘然后将结果输出,这样会造成溢出。正确的思路是用一个数组来存储这个结果,结果数据的每一位都存放在数组中,最后逆向输出数组中的内容就是正确的结果#include <iostream>#include <vector>int main(){ int base,count; //定义底数和幂次数 vector<int> result; //这

2017-07-12 18:11:09 1482

原创 C中的类型自动提升、printf("%08x",number)

同一句语句或表达式如果使用了多种类型的变量和常量(类型混用),C 会自动把它们转换成同一种类型。以下是自动类型转换的基本规则:1. 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会自动转换成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsigned short 被

2017-07-06 10:37:05 950

原创 软考复习资料:专题一:计算机系统知识

专题一:计算机系统知识 1、计算机硬件基础知识: 1.1计算机系统结构  计算机的发展历史:   1946年,世界上第一台电子计算机ENIAC出现,之后经历了5个发展阶段:冯式结构计算机的组成部分:存储器、运算器、控制器、输入设备和输出设备。强化的概念: 计算机的工作过程:一般是由用户使用各种编程语言把所需要完成的任务以程序的形式提交给计算机,然后翻译成计算机能直接执行的机器语言

2017-04-21 18:12:57 3869

原创 C++的四种强制类型转换

C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是static_cast<type>(content)。C++风格的强制转换其他的好处是,它们能更清晰的表明它们要干什么。

2017-04-20 15:07:15 201

原创 卸载ads1.2时遇到的问题

在启动setup程序时总是出现如下提示: 在启动C:/program是找不到指定的模块!解决方案: (1)首先找到ads的安装目录然后删除目录; (2)用win+r打开regedit或者在运行里面输入regedit. 删除注册表 1、HKEY_CURRENT_USER\SOFTWARE\ARM Limited\ARM Developer Suite 2、HKEY_LOCAL_MACHIN

2017-04-20 14:58:31 1887

原创 C++设计模式(一)

1、模式:在一定环境中解决某一问题的方案,包括三个基本元素–问题,解决方案和环境(固定套路)。 2、设计模式的分类 **创建型模式 通常和对象的创建有关,涉及到对象实例化的方式。(共5种模式) 结构型模式 描述的是如何组合类和对象以获得更大的结构。(共7种模式) 行为型模式 用来对类或对象怎样交互和怎样分配职责进行描述。(共11种模式)** 3、设

2017-03-22 20:12:42 176

转载 C++必须使用【初始化列表】初始化数据成员的三种情况

类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员; 2.进入构造函数后在构造函数中执行一般赋值与计算。 使用初始化列表有两个原因: 原因1.必须这样做: 《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表: 情况一、需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化);

2017-02-09 16:56:53 551

原创 C++ 类与对象

1、 面向对象的特点 (1) 抽象性:提高代码的灵活性 (2) 封装性:提高代码的维护性 (3) 继承性:提高代码的复用性 (4) 多态性:提高代码的扩展性 2、 类与对象 (1)类的声明: 举例:class 类名称 { Public: 公有成员(外部接口) Priate: 私有成员 Pro

2017-02-09 10:11:31 156

原创 C++对C的升级

C++对C的升级 1、 声明定义 C++中更强调语言的实时性,所有的变量都可在使用时再定义。 例:for(int i = 0; i < 10; i++) 2、 register关键字的升级 在C++中依然支持register关键字,并且可以取得register变量的地址,在进行取地址时编译器会将该变量优化到内存中 3、 const关键字 在C++中,编译器会为const常量分配空

2017-02-08 20:33:26 208

原创 自己实现strstr库函数

编程实现字符串中子串的查找/*********************************************** - Copyright (C): 2016 - File name : my_strstr.c - Author : - Zxn - - Date : 2016年08月28日 星期日 10时06分19秒 - Descript

2016-12-24 21:54:18 321

转载 多线程跟多进程区别

很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。 今天终于下了决心,写点东西,以后可以再修修补补也无妨。一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。 我想,只要你不是整天都写那种int main()到底的代码的

2016-12-23 21:07:33 177

翻译 c语言==判断一个数是否为2的整数次方【不使用循环】

对于判断一个数是否为2的N次方问题,通常想到的最为直接的办法就是对这个数不断对2取余,为0就将该数变为该数除以2,直到最后该数为1为止。 [cpp] view plain copy 在CODE上查看代码片派生到我的代码片 void judge(int n) { while(!(n % 2)) { n = n / 2; if(n == 1)

2016-12-22 22:39:33 272

转载 数字信号处理

一、信号处理的典型过程1 模拟滤波: x(t)→xa(t) 观测信号经过前置模拟器Ha(s)去掉一些带外成分和干扰 2 采样:xa(t)→xa(nT)以采样周期T对xa(t)进行采样,得到时域离散信号xa(nT),将时间离散化3 A / D 变换:xa(nT)→x(n)把原先信号幅值连续变换→量化幅值 将幅值离散化4 数字滤波: x(n)→y(n) 对

2016-12-21 22:01:42 900

转载 shell脚本编程

shell脚本介绍1.为什么使用Shell脚本批量命令重复、条件等控制2.Shell脚本的基本内容第一行:#!/bin/sh第二行:注释:#第三行:变量第四行:条件判断、循环3.脚本的运行方式chmod +x 脚本./脚本文件名4.示例(hello.sh)#!/bin/bash //第一行#这是一个基本的shell脚

2016-12-20 22:51:41 218

原创 用shell编程实现三个数的排序

!/bin/bashif [ $# -ne 3 ]; then echo “Input error” exit 1 fiif [ 1−gt1 -gt 2 ]; then MAX=1MIN=1 MIN=2 else MAX=2MIN=2 MIN=1 fiif [ MAX−ltMAX -lt 3 ]; then MAX=$3

2016-12-19 22:59:47 1895

转载 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const

深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p一、可能的组合:(1)const char*p(2)char const*p(3)char *const p (4)const char **p(5)char const**p(6)char *con

2016-12-18 22:37:44 225

转载 C语言判断两个数组是否有相同的元素

一】当存在相同的元素时一步一步跳出循环include pragma warning(disable:4996)int main() { int arr1[] = { 1, 3, 5, 7, 9 }; int arr2[] = { 1, 2, 4, 6, 8, 10 }; int i, j, flag = 0; for (i = 0; i < size

2016-12-17 23:18:58 4488

原创 B/S和C/S的区别

B/S和C/S的区别一、什么是CS和BS结构? 1.C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。 2.B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navi

2016-12-16 22:18:55 280

原创 heap&stack 区别

以下内容来自<程序员面试宝典>一、预备知识— 程序的内存分配 一个由C/C++ 编译的 程序占用的内存分为以下几个部分 1 、 栈区(stack )— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2 、堆区(heap ) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS 回 收 。注意它与数据结构中的堆是两回事,分

2016-12-15 22:08:10 163

转载 DNS解析

DNS是域名系统的缩写,是因特网的一项核心服务,DN是一个分布式的数据库,主要用来把主机名转换为IP地址。 即www.baidu.com 转化为 61.135.169.121 它允许服务器改变IP,但是名字不变,这就大大增加了服务器的灵活性与动态性DNS服务器工作的具体过程:1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就

2016-12-14 21:07:11 204

原创 青蛙跳阶

在剑指offer这本书里存在这样几个问题,它们是这样描述的: 【问题描述一】: 一只青蛙一次可以跳上1级台阶,也可以跳上两级台阶。求该青蛙跳上一个n级台阶总共有多少种跳法? 拿到这样一道题我们应该如何考虑呢?当然我们首先要考虑的就是简单的方面了!当只有一级台阶时(n=1),此时青蛙跳一次就可以完成目标;当只有两级台阶时(n=2),青蛙可以一次跳一级台阶分两次完成也可以一次跳两级台阶

2016-12-13 22:19:34 273

转载 约瑟夫环

一、思路分析     (1)可将人的顺序简单编号,从1到N;     (2)构造一个循环链表,可以解决首位相连的问题,同时如果将人的编号改为人名或者其他比较方便 (3)将人的编号插入到结构体的Data域; (4)遍历人的编号,输出参与的人的编号; (5)开始报数,从头报数,报到k的人出局(删除次结点),(输出出局的人更人性化)避免浪费,

2016-12-12 21:38:20 265

转载 volatile关键字的作用

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序: short flag; voi

2016-12-11 20:30:26 287

转载 Http协议

HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 在了解HTTP如何工作之前,我们先了解计算机之间的通信。计算机相互之间的通信互联

2016-12-10 20:33:46 389

原创 抓包工具大全

抓包工具1: HTTP Analyzer 界面非常直观,无需选择要抓包的浏览器或者软件,直接全局抓取,很傻瓜化,但是功能决定不简单。其他抓包工具有的功能它有,其他没有的功能它也有。点击start即可进行抓包,红色按钮停止抓包,停止按钮右边的就是暂停抓包按钮。 抓包完成以后,选择数据列表框内的数据,就可以在下面的选择夹内查看具体的数据,比如post的数据。其中post数据有几种查看方式:1.提交

2016-12-09 21:01:35 1272

原创 如何让UDP实现可靠传输

如何让UDP实现可靠传输自定义通讯协议,在应用层定义一些可靠的协议,比如检测包的顺序,重复包等问题,如果没有收到对方的ACK,重新发包UDP没有Delievery Garuantee,也没有顺序保证,所以如果你要求你的数据发送与接受既要高效,又要保证有序,收包确认等,你就需要在UDP协议上构建自己的协议。比如RTCP,RTP协议就是在UPD协议之上专门为H.323协议簇上的IP电话设计的一种介于传输

2016-12-08 21:29:49 903

原创 TCP协议与UDP协议的区别

TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。 TCP/IP协议集包括应用层,传

2016-12-07 20:40:13 262

原创 三次握手、四次挥手

TCP三次握手所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。第一次握手: 客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口

2016-12-06 21:06:04 593

原创 IP地址分类

一、IP地址的介绍   1、IP地址的表示方法   IP地址 = 网络号+主机号   把整个Internet网堪称单一的网络,IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符,Internet管理委员会定义了A、B、C、D、E五类地址,在每类地址中,还规定了网络编号和主机编号。在 TCP/IP协议中,IP地址是以二进制数字形式出现的,共32bit,1bit就是二

2016-12-05 20:45:04 286 1

转载 OSI参考模型、TCP/IP参考模型及每层所用的协议

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。 完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。 具体说: 物理层:网卡

2016-12-04 20:34:48 495

转载 STL基本容器: string、vector、list、deque、set、map

在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少 map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、 vector、list、deque、set 是有序容器 1.string

2016-12-03 23:07:54 583

原创 C/C++ 编写一个程序,实现输出链表中倒数第K个结点

编写一个程序,实现输出链表中倒数第K个结点 ListNode * FindKthToTail(LisNode *head, unsigned int k) { if(head == NULL || K == 0) //入口参数检查!!! { return NULL; } int i; ListNode *pAhead = head; Lis

2016-12-02 21:18:09 415

原创 C语言模拟试卷一

试卷二一、填空选择题1、请写出 char *p 与“零值”比较的 if 语句                            解:if( p == NULL) 2、写出打印结果___255____ #include #include int main() {    char a[1000];    int i;    for(i=0;i  

2016-12-01 19:25:34 512 1

原创 进程间通信方式有那些?各自有哪些优缺点?

进程通信的含义进程是转入内存并准备执行的程序,每个程序都有私有的虚拟地址空间,由代码,数据以及它可利用的系统资源(如文件,管道)组成.多进程/多线程是windows操作系统的一个基本特征.Linux系统一般都统称为进程.由于不同的进程运行在各自不同的内存空间中,其中一个进程对于变量的修改另一方是无法感知的,因此,进程之间的消息传递不能通过变量或其他数据结构直接进行,只能通过进程间通

2016-11-30 18:46:19 1907

原创 C/C++ strlen(a)的值是多少

int main()  {   char a[1000];   int i;   for(i=0; i {    a[i] = -1-i;   }   printf("%d",strlen(a));   return 0;  }此题看上去真的很简单,但是却鲜有人答对。答案是255。别惊讶,我们先分析分析。for 循环内,当i 的值为0 时,a[0]的值为

2016-11-29 20:56:21 933

原创 链表的逆序

创建一个带头节点的链表并把链表的逆序(递归法),链表遍历[cpp] view plain copy #include   #include       /* define structure of linklist */  typedef struct Node  {      int data;  

2016-11-28 20:37:38 152

原创 信息论与编码题库

1.1   第2章1.1.1   选择题1.  同时掷两个正常的骰子,各面呈现的概率都是1/6,则“两个1同时出现”事件的自信息量是(     )。A、4.17bit             B、5.17bit              C、4.71bit                 D、5.71bit解答:B。2.  设信源概率空间为 ,则此信源的熵为(    )三进制信

2016-11-27 22:05:09 28244 3

原创 shell编程

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的S

2016-11-26 22:59:45 219

原创 数字传输技术复习

问答原理类型: 1、针对PDH的哪些弱点发展出SDH?SDH的缺点有哪些? (1) 接口方面1)只有地区性的电接口规范,不存在世界性标准2)没有世界性标准的光接口规范(2)复用方式1)从高速信号中分/插出低速信事情要一级一级的进行2)由于低速信号分/插到高速信号要通过层层的复用和解复用过程,这样就会使信号在复用/解复用过程中产生的损伤加大,使传输性能劣化,在大容量传输时

2016-11-25 21:23:39 2576

空空如也

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

TA关注的人

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