- 博客(21)
- 收藏
- 关注
转载 如何判断两个整数相加减是否溢出
一、两个无符号整数相加减对于两个w位宽的无符号整数来说,其能够表示的范围在0如果两个无符号整数相减,若溢出,则结果将位于这两个整数之间。二、两个有符号整数相加减对于两个w位宽的有符号整数来说,其能够表示的范围在-2w-1次方如果两个有符号整数相减,值得注意的是,作为减数的数的值为-128时(我们这里取整数为8 bits),结果是否溢出的判断则
2016-03-24 14:17:03
9027
转载 值得推荐的C/C++框架和库
值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.ti
2016-03-04 11:18:44
457
转载 dns报文格式
转载:http://blog.chinaunix.net/uid-24875436-id-3088461.htmlDNS报文格式(借个图贴过来): 说明一下:并不是所有DNS报文都有以上各个部分的。图中标示的“12字节”为DNS首部,这部分肯定都会有,首部下面的是正文部分,其中查询问题部分也都会有。除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这
2016-01-22 15:24:14
802
转载 C语言域名解析的简单实现
本文转自:http://basiccoder.com/dns-resolver-by-c.html看了看DNS协议的相关东西,其实实际编程的时候根本用不到DNS细节的东西,要获取域名的时候经终端下用host或者nslookup指令就可以,在c里面使用gethostbyname或者getaddrinfo都能很轻松得将dns域名解析为ip地址,写这个纯粹出于个人兴趣,或者说是闲得吧。
2016-01-22 10:56:20
10887
原创 Python的POST和GET方法
1.GET方法get方法是直接将要请求的数据放在url中,下面用httplib和urllib2模拟用户登录。1)2)2.POST方法POST方法是直接将要请求的数据放在data或body中,不能放在url中,下面用httplib和urllib2模拟用户登录。1)2)httplib实现了http和https的客户端协议,但是在p
2015-12-09 18:31:26
1835
原创 支持sftp协议的libcurl编译
以为mips平台编译为例,为了支持OTA(sftp协议),下面介绍生成Makefile的配置,各个配置空格隔开,生成Makefile之后,执行make,make install完成安装。1 编译libz源码包:zlib-1.2.8CC=编译器绝对路径/mips-linux-gcc ./configure--prefix=libz库的安装路径2 编译openssl源码
2015-11-06 16:44:03
4498
转载 Log4c使用
Log4c 使用注:【转载请注明文章来源、保持原样】出处:http://www.cnblogs.com/jyli/archive/2010/02/11/1660606.html作者:李嘉昱最近想找个好用的Log工具,比较了一下流行的开源Log工具Log4c,Log4CPP, Log4CXX等,觉得还是Log4c比较合适。Log4cxx需要依赖于APR。Log
2015-11-02 18:36:40
469
转载 深度优先搜索(DFS) 算法
深度优先搜索(DFS)1.前言深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。你可以跳过第二节先看第三节,:)2.深度优先搜索VS广度优先搜索
2015-10-27 09:40:54
600
转载 BFPRT(线性查找)算法
BFPRT算法是解决从n个数中选择第k大或第k小的数这个经典问题的著名算法,但很多人并不了解其细节。本文将首先介绍求解这个第k小数字问题的几个思路,然后重点介绍在最坏情况下复杂度仍然为O(n)的BFPRT算法。一 基本思路关于选择第k小的数字有许多方法,其效率和复杂度各不一样,可以根据实际情况进行选择。将n个数排序(比如快速排序或归并排序),选取排序后的第k个数,时间复杂度
2015-10-27 09:39:51
1599
转载 堆排序算法
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总
2015-10-27 09:38:51
254
转载 快速排序算法
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速
2015-10-27 09:37:33
275
转载 归并排序算法
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy//将有
2015-10-27 09:36:32
278
转载 二分查找算法
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即5,由于5 2.寻找{6, 7, 8,
2015-10-27 09:35:48
325
转载 广度优先搜索(BFS)算法
1.前言广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略。因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名。 一般可以用它做什么呢?一个最直观经典的例子就是走迷宫,我们从起点开始,找出到终点的最短路程,很多最短路径算法就是基于广度优先的思想成立的。算法导论里边会给出不少严格的证明,我想尽量写得通俗一点,因此
2015-10-27 09:35:11
402
转载 Dijkstra算法(单源最短路径)
Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k
2015-10-27 09:33:50
465
转载 动态规划算法
笔试面试中经常会出现一些考察动态规划方面的题目,以前没有接触过,现在初学做个整理。1. 什么是动态规划? 和分治法一样,动态规划(dynamicprogramming)是通过组合子问题而解决整个问题的解。 分治法是将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解。 动态规划适用于子问题不是独立的情况,也就是各子
2015-10-27 09:32:58
272
转载 一个生成伪随机数的超级算法
最近浏览“程序员论坛”时发现不少好帖,增长了不少知识,现拿其中一则为例与大家共同分享心得。 某人提出一个问题:怎样才能生成一亿个不重复的随机数? 问题表述起来很简单,似乎只要弄明白什么叫随机数以及怎样用电脑生成随机数,就能解决问题。 随机数,个人理解为一定范围内出现的毫无规律的数,比如扔一个骰子,落在桌面上时朝上的一面所表示的数就是随机数,这个数只能在1到6的范围内,
2015-10-27 09:31:15
1119
原创 libxml编程--内存泄露
最近在项目中使用到了libxml函数库,使用过程中用valgrind进行检测的时候发现了一些内存泄露。 主要是两个问题,现整理如下。 1.xmlGetProp函数 调用这个函数会返回一个xmlChar类型的指针xmlChar* szAttr = xmlGetProp(propNodePtr,BAD_CAST "attribute");
2015-10-11 11:36:06
2162
转载 libxml编程--函数总结
--------------------------------------------------------------------------------------------------l xmlChar 替代char,使用UTF-8编码的一字节字符串l xmlDoc 包含由解析文档建立的树结构,xmlDocPtr是指向这个结构的指针。l xmlNod
2015-10-11 11:31:44
347
转载 libxml2编程--C语言xml初使用(2)
上接《C的xml编程-libxml2(1)》3、简单xml操作例子了解以上基本知识之后,就可以进行一些简单的xml操作了。当然,还没有涉及到内码转换(使得xml中可以处理中文)、xpath等较复杂的操作。3.1 创建xml文档有了上面的基础,创建一个xml文档显得非常简单,其流程如下:l 用xmlNewDoc函数创建一个文档指针doc;
2015-10-09 17:00:34
5804
转载 libxml2编程--C语言xml初使用(1)
1、下载与安装LIBXML2Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。Libxml2的下载地址是http://xmlsoft.org/,完全版的库是开源的,并且带有例子程序和说明文档。最好将这个库先下载下来,因为这样可以查看其中的文档和例子。由于我是在linux下用C语言进行开发的,
2015-10-09 16:36:29
3766
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人