- 博客(29)
- 资源 (29)
- 收藏
- 关注
转载 UDP实现可靠数据传输
UDP没有Delievery Garuantee,也没有顺序保证,所以如果你要求你的数据发送与接受既要高效,又要保证有序,收包确认等,你就需要在UDP协议上构建自己的协议。比如RTCP,RTP协议就是在UPD协议之上专门为H.323协议簇上的IP电话设计的一种介于传输层和应用层之间的协议。下面分别介绍三种使用UDP进行可靠数据传输的协议RUDPRTP
2014-08-26 20:50:46
645
转载 linux IPC通信
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义
2014-08-26 20:42:46
623
原创 数据库索引的实现原理
强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向
2014-08-26 20:37:01
494
原创 位运算求解两个数的平均值
1. 给定两个数x和y,朴素算法求解两个数的平均值是(x+y)/2,但是这种方法有个问题就是当x和y的和溢出的时候得到的平均值是错误的,我们可以采用位运算来解决这个问题。 一般对于x和y不大的时候,利用(x+y) >> 1可以得到两个数的平均值 对于一个数a,a > n表示的是a/2^n2. x和y的平均值可以用以下公式求:(x&y)+((x^y)>
2014-08-20 09:10:09
1553
原创 动态规划应用—硬币组合问题
关于硬币组合问题,华为和创新工场面试题,直接上参考链接:http://www.cnblogs.com/python27/p/3303721.html/* * Filename :coins.cpp * Description: solve coin combinations using dynamic programing * Complier: g++ * Author: pyth
2014-04-04 13:17:04
1002
原创 C变量(auto、static、register、extern)函数(内部、外部)与存储
本篇主要阐述下C语言中关于变量的分类,函数的分类及其在内存空间中的存储和作用域问题。基本全是文字,但是很重要,也是自己在学习C++,JAVA,C#等语言后,然后C语言中容易弄混的地方。哎,有时候语言学多了,总结少了,容易弄混~~一、变量分类1.1 按照作用域分类1)源文件程序的编译单位是源程序文件,一个源程序文件可以包含一个或若干个函数。2)局部变量与全局变量
2014-04-02 18:47:57
1080
原创 指针强制转换
C 和 C++ 的指针强制转换时不太一样的, C++ 提供了4中类型,用于更加精细化控制指针的强制转换。1、指针转换原理讨论指针的强制转换之前,我们先要理解清楚指针的根本含义。最通俗的解释,指针即是地址,但是,指针绝不仅仅只是地址。1)指针存着所指对象地址2)指针存着所指对象的类型和类型大小试想我们定义一个某类型指针p,后可以p++,p--,*p这些都与“指针记录了所指对象类型
2014-04-02 13:47:23
1068
原创 Big-endian 和 Little-endian 详解
网上有一篇博文分析的非常详细,这里列出参考地址:http://blog.youkuaiyun.com/ce123_zhouwei/article/details/6971544这里自己列出一些觉得重要的地方,供后续参考。一、大小端定义 Big-Endian和Little-Endian的定义如下:1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2014-04-02 12:00:31
819
转载 C语言bool类型
声明:本文为转载文章,自己copy过来仅为学习之用,来源于 http://blog.youkuaiyun.com/daheiantian/archive/2011/02/05/6241893.aspx,觉得重要的地方加红色标注,谢谢博主! 也许很多人都和我一样,不知道现在的C语言已经有了布尔型:从C99标准开始,类型名字为“_Bool”。 在此之前的C语言中,使用整型i
2014-04-02 11:26:03
1172
原创 位段(bit-field)
一、位段结构struct node{ unsigned int a:4; //位段a,占4位 unsigned int :0; //无名位段,占0位 unsigned int b:4; //位段b,占4位 int c:32; //位段c,占32位 int :6; //无名
2014-04-02 10:11:56
599
原创 C语言符号扩展
C语言中,符号扩展非常常见,大体一般发生在 a =b, 而 a、b为不同数据类型情况下。一、短数据类型扩展为长数据类型1、要扩展的短数据类型为有符号数的进行符号扩展,即短数据类型的符号位填充到长数据类型的高字节位(即比短数据类型多出的那一部分),保证扩展后的数值大小不变。例如:a)char x=10001001b; short y=x; 则y的值应为11111111 100
2014-04-02 09:42:08
2703
原创 关于Union和Struct对齐
关于union,struct,还有机器数赋值,总是感觉自己认识不是特别深刻,这里使用小DEMO程序加以说明,具体的详细细节描述其它地方已经有说明和记录,这里不再说明。#include union myun {struct { int x; int y; int z; }u; int k; }a; int main() { a.u.x =4; a.u.y =5;
2014-04-01 19:26:17
588
原创 内存对齐(Data Structure Alignment)
一.何为内存对齐,内存对齐的作用 我们现在使用的算机中内存空间都是按照字节(Byte)划分的,理论上说,似乎对任何类型的变量的访问可以从任意地址开始,但实际情况则是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型的数据按照一定的规则在内存空间上排列,而不是顺序的一个接一个地排放,这就是对齐。内存对齐主要是基于效率考虑,有用空间换时间的意思,减少数据存取指令周
2014-04-01 15:17:32
1106
原创 控制taskmgr CPU记录曲线
下面描述在Multi-Core CPU上控制任务管理器CPU使用记录曲线(绘制余弦曲线),具体见代码:/*@Author: yj@Description: 文件描述构造控制任务管理器,使CPU使用曲线满足余弦函数*/#include #include #include #include #include using namespace std; const doubl
2014-03-31 20:02:28
598
原创 课后习题Chapter1
1.1-4解答:相似之处:这两个问题都是求最短的路径不同之处:最短路径问题其实是给定了情景并且不需要遍历所有的点只需要得到一个点到另外一个点的最短路径就可以了,而旅行商人问题则需要遍历所有的点并求得最短的路程,问题的复杂度不一样。亦可以找到一个最短的路径,但是你无法找到一个选择一条送货车行驶距离最短的送货顺序。其实是一个NP完全问题。(其实这个想了很久,由于要遍历所有的点,得到一个整体
2013-11-23 20:07:35
634
转载 算法问题:什么是P问题、NP问题和NPC问题
这或许是众多OIer最大的误区之一。你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC
2013-02-18 19:05:36
485
原创 Jni 参数传递与操作——(C/C++ 代码与 java 代码的互相调用)
JNI中,C函数名的java对象参数,除了String类外则都表示为jobject类型(String类表示为jstring类型).JNI提供了在本地代码中操作Java对象的功能。基本原理首先需要找到对象属于哪个类(class).类(class)在JNI中用jclass进行表示。查找java类有两种方式:一、用类名(如android.os.Binder)在FindClass()函
2012-12-03 08:46:48
724
原创 Androd 中 NDK 编程详解(一)
上节讲解了NDK 开发环境搭建的方法,这节讲解下NDK编程的相关知识。如何将.so文件打包到.APK1、在你的项目根目录下建立libs/armeabi目录;2、将libxxx.so文件copy到 libs/armeabi/下;3、此时ADT插件自动编译输出的.apk文件中已经包括.so文件了;4、安装APK文件,即可直接使用JNI中的方法;我想还需要简单说明一下libxxx
2012-11-28 17:03:15
528
原创 NDK 开发环境搭建
JAVA开发中,我们经常要用到JNI机制,去调用一些已经实现了的库,以便代码复用,不必重新实现。NDK(Native Development Kit)。Android 常见开发方式是Java 封装的库,而这些库的底层是由C 或 C++ 实现的。NDK 是Google 公司推出的帮助Android 开发者通过C/C++ 本地语言编写应用的开发包,其包含C / C++ 头文件,库文件,示例代码。目
2012-11-27 18:27:21
342
原创 JNI使用浅谈(一)
JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用JNI可以使java代码调用本地的库文件(
2012-11-26 19:26:17
494
转载 编程学习路线
编程的学习跟许多其他技艺的学习一样,首先必不可少的就是理论基础,其次就是需要大量的、不断地练习。老生常谈,这也许是每个人都懂得的道理,但说起来容易做起来难。所以想要学好编程,还需要些方法和毅力才行。对于编程来说,理论阶段的学习相对比较抽象。过早地就希望一口气掌握所有理论知识然后再开始实践,往往会越学越迷茫。因此从大的方面来说,比较好的方法是理论学习-实践-总结-理论学习-实践.....
2012-11-20 15:36:18
699
原创 android 源代码获取
接触Android差不多一年多了,这是我的第一篇博文,从今天开始,我会坚持写文章,记录自己日常学习心得。好了,言归正传。要想深入研究android,分析android源代码是必不可少的一步。网上有很多相关的教程,我自己亲自试了一下,在此做个总结。Android 源代码是用GIT分布式版本控制工具管理的,要想获取源码,我们无法用普通方式下载,只能通过GIT获取。一、windows 平台下
2012-11-16 20:11:23
585
原创 ListView BaseAdapter 简单分析
接触listview 有一段时间了,一直没有好好分析,今天仔细分析了下流程,记录在此,也给新进的同学一个参考。先附代码:RecentAdapter:package com.test.baseadapter;import java.util.ArrayList;import android.content.Context;import android.util.Log
2012-11-07 18:32:17
520
仓库管理系统源代码hvhhvcvvb吧
2009-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人