C语言中位运算符异或“∧”的作用

异或运算符∧也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即0∧0=0,0∧1=1,1∧1=0。如: 即071∧052,结果为023(八进制数)。 “异或”的意思是判断两个相应的位值是否为“异”,为“异”(值不同)就取真(1),否则为(0)。   ...

2017-03-19 14:16:34

阅读数 22179

评论数 0

C++中的const和引用

首先,我们需要知道什么是引用? 定义:引用就是给对象起别名,引用类型引用另一种类型。将声明符写成&d的形式来定义引用类型,其中d是声明的变量名。 int size = 100; int &sum = size; 要注意的是: 我们在引用的时候必须要...

2018-09-25 20:16:11

阅读数 437

评论数 0

TCP/IP协议的三次握手与四次挥手

一、TCP报文格式 上面图中有几个字段重点介绍一下: 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 确认序号:Ack序号,占32位,只有ACK标志为1时,确认序号字段才有效,Ack=Seq+1。 标志位:共6个,即URG、ACK、...

2018-08-20 13:55:40

阅读数 109

评论数 0

二叉树的遍历

二叉树的遍历主要包括前序遍历、中序遍历、后序遍历和层序遍历四种,其中前三种是非常常用的,下面介绍前三种遍历的方法。 前序遍历 思路:从根结点开始遍历,若二叉树为空,则直接返回NULL,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。如下图所示: 代码实现: 前序遍历递归: ...

2018-08-16 20:59:24

阅读数 61

评论数 0

常见的HTTP状态码总结

最近学习了HTTP的相关内容,下面就HTTP的状态码做一个简单的总结。 2开头 (请求成功)表示成功处理了请求的状态代码 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。。 202 (已接...

2018-08-14 14:42:22

阅读数 69

评论数 0

编写类String的构造函数、析构函数和赋值函数

问题: 编写类String的构造函数、析构函数和赋值函数,已知类String的函数原型为: class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &amp...

2018-07-27 15:33:26

阅读数 293

评论数 0

修改MySQL数据库编码为UTF-8

一、MySQL数据库的编码字符集 1、MySQL的版本不一样当然也会有不同不字符集编码方式,字符编码方式是用一个或多个字节表示字符集中的一个字符,每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,会产生不同的二进制。 2.字符集种类 ASCII字符集:基于罗马字母...

2018-04-07 21:41:58

阅读数 2160

评论数 0

MySQL数据库基础

一、MySQL数据库基础 1.什么是数据库? 储存数据一般用文件就可以,那么为什么要用数据库呢? 文件保存数据是有缺点的: 文件的安全性问题 文件不利于查询和对数据的管理 文件不利于存放海量数据 文件在程序中控制不方便 为了解决上述问题,数据库就出现了,数据库能更有效的管理数据。...

2018-04-04 23:11:52

阅读数 132

评论数 1

Linux背景

linux背景 1.发展史 要说Linux,还得从UNIX说起。 UNIX发展的历史 1968年,一些来自通用电气公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新的概念。 1969-1970,AT&...

2018-03-23 00:51:14

阅读数 507

评论数 0

linux--基础IO

一、熟悉open/read/write/close等文件相关系统调用接口。 open //头文件 #include<sys/types.h> #include<sys/stat.h> #inclu...

2018-02-14 21:24:12

阅读数 154

评论数 0

进程控制

一、进程的创建、终止和等待。1.进程创建fork():进程是处于执行期的程序以及相关资源的总称,进程在创建它的时候开始存活,在linux系统中,通过使用fork()函数复制一个现有进程来创建一个新进程,调用fork()函数的进程称为父进程,新产生的进程称为子进程,子进程几乎完整的复制了父进程,但至...

2018-01-04 16:32:13

阅读数 134

评论数 0

进程调度、僵尸进程和孤儿进程、linux环境变量

一、进程的调度方式,调度算法总结。进程的三种状态1.等状态:等待某个事件的完成。 2.就绪态:等待系统分配处理器以便运行。 3.运行态:占有处理器正在运行。三种状态的转化调度方式剥夺方式:当一个进程正在运行的时候,系统可以基于某种原则,剥夺已分配给他的处理机,将处理机分配给其他进程,剥夺原则有...

2018-01-01 16:38:05

阅读数 194

评论数 0

自主实现一个简单的shell

最近学习linux,打开linux虚拟机在一个“黑框框”中敲下一些命令,就能对应的执行一些操作,通过对shell的进一步学习,对它的底层实现产生了浓厚的兴趣,应该通过学习,下面实现一个简单的迷你版的myshell。一、myshell的执行过程。1.获取命令行。2.解析命令行。3.建立一个子进程。4...

2017-12-09 21:47:36

阅读数 192

评论数 0

linux实现彩色进度条,rpm和yum安装的区别和进程的task_struck结构

一、在Linux下实现进度条程序. 通过makefile进行编译. 建议自主完成一个彩色的进度条.1.什么是进度条?进度条:进度条是在计算机处理任务时,以图片形式显示处理任务的进度的一种显示。2.要设计一个什么样的进度条呢?那么我们经常见的进度条包括有长方形的条状强调内容从短短的一点一点开始慢慢变...

2017-12-03 18:35:52

阅读数 558

评论数 0

Linux基本指令、文件管理权限及Linux重要目录的整理

一.Linux的基本命令1.文件管理命令(1).创建文件-touch —touch file.txt                 创建文件file.txt — touch .file.txt               创建隐藏文件file.txt(文件前加点,表示隐藏) —t...

2017-11-15 16:29:04

阅读数 215

评论数 0

vector和list的使用及其模拟实现

一.vector使用及模拟实现。1.vector简介。 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。 另外,当数组中内存空...

2017-11-11 23:19:45

阅读数 165

评论数 0

c++智能指针(SmartPtr)简单剖析

一、什么是智能指针?智能指针(smart pointer):是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。由于c++语言没有自动回收机制,写代码时总要new一个空间,用...

2017-08-22 12:14:46

阅读数 392

评论数 0

String-引用计数的写时拷贝

【写时拷贝】 何为写时拷贝呢??? 提到写时拷贝就不得不提起浅拷贝和深拷贝,深拷贝补充了浅拷贝的不足,而写时拷贝补充了深拷贝的不足,那么到底是怎么补充的呢?下面,给大家细细道来。 其实写时拷贝就是当你读取到这个已经存在的空间时,并不会立刻开辟出一个一模一样的空间出来给你,而是用计数的方式来延...

2017-08-18 11:27:48

阅读数 201

评论数 0

跳台阶问题+变态跳台阶问题(动态递归+非递归)

一、跳台阶问题。问题描述:小明一次可以跳上1级台阶,也可以跳上2级台阶,求小明跳上n级的台阶有多少种跳法?并分析算法的时间复杂度。 问题分析: 当台阶数n=1时,跳法f(1)=1; 当台阶数n=2时,跳法f(2)=2; 当台阶数n=3时,跳法f(3)=3; 当台阶数n=4时,跳法f(4)...

2017-08-11 14:56:58

阅读数 524

评论数 0

模板的分离编译问题

一、下面我们主要讨论分析一下模板为什么不支持分离编译?所谓的分离编译是指将声明和定义分开来写,即将一个函数的声明和定义放在.h和.cpp文件中。 写过模板的人应该都会发现当我们用上面的方式写一个函数的时候,只要在.cpp中包.h的头文件,就没什么问题,但是如果写模板的时候,就编译链接不过去...

2017-08-07 20:28:33

阅读数 270

评论数 0

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