自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C-now-s的专栏

希望未来的我会很喜欢现在的我!

  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 集线器与交换机的区别

以太网的集线器和交换机都是数据传输的枢纽。Hub 是将信号收集放大后传输给所有其它端口,即传输线路是共享的。而交换机能够选择目标端口,在很大程度上减少冲突(Collision)的发生,为通信双方提供了一条独占的线路。  另外,现在的交换机大多还具有第三层(网络层)的路由功能。所以说,使用交换机能大大改善网络的传输性能。  我们今天就为大家从技术和应用两个方面分析一下低端交换机(中、高端交换机用

2013-10-26 10:26:22 1440

原创 一列队伍长100米,正在行进,传令兵从队伍末端到排头传令,又反回队伍末端,期间没有停留.这段时间里队伍前进了100米,已知队伍和传令兵的移动速度保持不变,问传令兵共跑了多少米?(最好要算式解答)

一列队伍长100米,正在行进,传令兵从队伍末端到排头传令,又反回队伍末端,期间没有停留.这段时间里队伍前进了100米,已知队伍和传令兵的移动速度保持不变,问传令兵共跑了多少米?(最好要算式解答)参考:方案一:首先,这道题其实与时间、速度都无关系,虽然在公式可能设定一些参数,但最后都可以消掉的。解:设原队头位置为A,原队尾位置为B,则行进结束时,队头前行100米,位置为D。D与B的距离为

2013-10-21 21:41:00 4476

原创 Python 学习历程- 看我一步一步走过来 未完待续。。。

python 学习历程,一步一步详解学习一门编程语言之关键。

2016-03-15 16:32:15 621

转载 结构体在内存中的对齐规则

一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一:                                      #include                                      using namespace std;                                      

2013-11-12 16:38:41 931

原创 Union与Struct的区别

1. 共用体声明和共用体变量定义  共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义  共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似。其形式为:  union 共用体名{  数据类型 成员名;  数据类型 成员名;  ...  } 变量名;  共用体表示几个变量共用一个内存位置,在不

2013-11-08 20:11:54 904

原创 linux程序迁移至windows,老有问题

linux程序迁移至windows,老有问题,未声明的标识符?但是明明定义过该结构体的头文件已经包含在内,求大神么赐教~~~

2013-11-06 09:00:48 1143 2

原创 八皇后问题

1.引子   中国有一句古话,叫做“不撞南墙不回头",生动的说明了一个人的固执,有点贬义,但是在软件编程中,这种思路确是一种解决问题最简单的算法,它通过一种类似于蛮干的思路,一步一步地往前走,每走一步都更靠近目标结果一些,直到遇到障碍物,我们才考虑往回走。然后再继续尝试向前。通过这样的波浪式前进方法,最终达到目的地。当然整个过程需要很多往返,这样的前进方式,效率比较低下。2.适用范围

2013-10-16 11:03:43 1123 2

转载 Google面试题 数组中第K小的数字

题目1534:数组中第K小的数字时间限制:2 秒内存限制:128 兆特殊判题:否提交:682解决:105题目描述:给定两个整型数组A和B。我们将A和B中的元素两两相加可以得到数组C。譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6]。现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字。

2013-10-15 22:18:31 885

原创 写一个函数,判断一个int型的正整数是否是2的幂,即是否可以表示成2^X的形式(不可以用循环)

参考答案://只考虑a大于0的情形//返回1,表示a为2的幂//返回0, 表示a不是2的幂int is2n(int a){         return (((~a + 1) & a) == a);}例如: 1.对于整数8,判断过程如下:       二进制    : 1000      ~a        : 011

2013-10-15 21:35:40 1481

原创 一个人,花8元买只鸡。9元卖出去。10元买回来、11元在卖出去。请问他赚了多钱?

解析: 这个题目有点混,宝马公司的答案用了强盗逻辑加错误算法得出-2元。错误算法: 整个事件有3次交易,我门来看看具体是哪3次? 第一次交易:8元买进,9元卖出,利润1元; 第二次交易:9元卖出,10元买进,利润-1元; 第三次交易:10元买进,11元卖出利润1元; 整个过程:1-1+1=1元 它忘了第三次的交易卖11元,是补上追加成本的1元,又赚一块,加之前的一块,

2013-10-15 21:26:04 2626

原创 strlen与sizeof的区别

一、strlenstrlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。char aa[10];coutchar aa[10]={'\0'}; coutchar aa[10]="jun"; cout而sizeof()返回的是变

2013-10-15 21:10:37 740

原创 《算法导论》习题6.4-3

第80页6.4-3对一个其所有n个元素已按増序排列的数组A, 堆排列的运行时间是多少?若A的元素成降序排列呢?    如果是已按递增顺序排列,在建堆的时候需要O(n),而在堆排序的时候需要O(nlgn),所以递增顺序排列的话,仍然需要O(nlgn).如果按照递减的顺序排列,在建堆的时候需要O(1),在堆排序的时候仍然需要O(nlgn),故在这两种情况下,算法需要的时间都是O(nlgn)。

2013-10-15 18:51:04 2005

转载 不使用额外空间,将 A,B两链表的元素交叉归并

设有两个按元素递增有序的单链表A和B,编一程序将A和B表归并成一个新的递增有序的单链表C,不使用额外空间。[cpp] view plaincopy#include   using namespace std;    struct Node{        int   m_Data;        Node *m_pNe

2013-10-11 22:48:27 993

转载 一个月练好英语口语

What are you trying to say?(你到底想说什么?) Don't be silly.(别胡闹了。) How strong are your glasses?(你近视多少度?) Just because.(没有别的原因。) It isn't the way I hoped it would be.(这不是我所盼望的。) You will never guess.(你永远猜不到。

2013-10-10 20:59:39 1217

转载 C语言运算符优先级和口诀

一共有十五个优先级: 1   ()  []  .  ->2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   * / %4   + - 5   >> 6   > >= 7   == !=   8   &  9   ^   10  |   11  &&12  ||13  ?

2013-10-10 19:54:01 748

原创 支持证书许可证转手的公平抗滥用的合同签署协议(笔记)

DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。指的是出版者用来控制被保护对象的使用权的一些技术,这些技术保护的有数字化内容(例如:软件、音乐、电影)以及硬件,处理数字化产品的某个实例的使用限制. 本术语容易和版权保护混淆。版权保护指的应用在电子设备上的数字化媒体内容上的技术,DRM保护技术使用以后可以控制和限制这些数字化媒体内容的使用权。L

2013-10-10 17:03:21 818

原创 只用一个变量打印出九九乘法表

将一个变量分为两部分,高四位与低四位。则相当于两个变量的效果,再利用双重循环即可~简例如下:int main(){     unsigned char a;     for (a=0x10 ; a        for (a +=(a>>4) ; (a&0xf)           printf("%d*%d=%d ",a>>4,a&0xf,(a>>4)*(a&0xf)

2013-10-10 08:55:38 1172

原创 结构体中的函数指针

在结构体中定义函数指针,然后对其调用(和类调用的方法是一样的~)在调用时对其赋值。#includestruct square{    int weight;    int width;    int height;    int (*add )(int a,int b);};int square_add(int a,int b){    return a

2013-10-09 22:01:20 757

转载 形参与实参之间的值传递

先说形参与实参的数值传递:       函数调用时将实参数传递给形参称为参数传递。C语言中,参数的传递方式是“单向值传递”,形参和实参变量各自有不同的存储单元,被调用函数中的形参变量值的变化不会影响实参变量值。举个例子 #include void   swap(int x,int y) {     int z;      z=x;      

2013-10-09 11:45:20 11351 1

原创 静态链接库与动态链接库

一、静态链接库通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx.a”的形

2013-10-09 09:31:32 840

转载 LINUX下动态链接库的使用

LINUX下动态链接库的使用2.1 重要的dlfcn.h头文件LINUX下使用动态链接库,源程序需要包含dlfcn.h头文件,此文件定义了调用动态链接库的函数的原型。下面详细说明一下这些函数。1.1.1 dlerror原型为: const char *dl

2013-10-09 09:16:26 915

转载 LINUX下动态链接库的创建

LINUX下动态链接库的创建       在LINUX系统下,创建动态链接库是件很简单的事情。只要在编译函数库源程序时加上-shared选项即可,这样所生成的执行程序即为动态链接库。从某种意义上来说,动态链接库也是一种执行程序。按一般规则,程序名应带.so后缀。下面举个例子。编写两个函数,一个用于查询当前日期getdate,一

2013-10-09 09:11:36 684

原创 静态链接库

1、静态链接库        在程序执行之前加入到目标程序中去了;实际上就是简单的一个普通的目标文件的集合,一般来说习惯用“.a”作为后缀。优势:1)将程序link起来,而不用重新编译代码,节省了重新编译代码的时间。             2)当想把自己提供的函数给别人使用但又相对函数的源代码进行保密,则可向别人提供一个静态函数库文件。创建一个静态函数库文件,或者往一

2013-10-08 18:14:02 650

原创 如何读取动态链接库中的符号表,并调用

我们知道动态加载的函数库是一类函数库,他可以在程序运行过程中的任何时间加载。它们特别适合在函数中加载一些模块和plugin扩展模块的场合,因 为它可以在当程序需要某个plugin模块时才动态的加载。例如,Pluggable Authentication Modules(PAM) 系统就是用动态加载函数库来使得管理员可以配置和重新配置身份验证信息。   Linux系统下,DL函数库与其他函数

2013-10-08 14:49:39 5582

原创 动态链接库(Linux)

Linux下动态链接库的使用:     Linux下使用动态链接库,原程序需要包含dlfcn.h头文件,此文件定义了调用动态链接库的函数的原型。 #include #include   //Four functions dlopen(), dlsym(),dlclose(),dlerror() implementing the interface to the dyna

2013-10-08 11:38:54 685

转载 如何修改动态库符号表

ELF 文件中代码、连接信息和注释是以节(section)为单位存放的,并存有一个节头表(section header)。对每一节,在节头表中都有一个表项(节头表项)与之对应,表项记录了该节的一些信息,例如该节在文件中的位置信息和该节的字节长度信息。一、ELF 文件和有关术语Unix 系统的可执行文件和动态库文件是以 ELF 格式存放的。为使下面的叙述清晰而没有伎义,先

2013-10-08 10:30:42 2693

原创 GDB指令——读取符号表

GDB指令——读取符号表-symbols -s 从指定文件file中读取符号表。-se file从指定文件file中读取符号表信息,并把他用在可执行文件中。-core -c 调试时core dump(核心转储)的core文件。-directory -d 加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。

2013-10-08 09:46:12 18049

原创 共享库

注:组成共享库的目标文件,在编译时需要加-fPIC选项,例如:$ gcc -c -fPICstack/stack.h-f 后跟一些编译选项,PIC表示position Independent Code(位置无关代码);区别:加了-fPIC的共享库,其各段的加载地址并没有定死,可以加载到任意位置,因为指令中的地址都是相对ebx的,没有使用绝对地址,只要根据实际的家在地址修在ebx就好了。

2013-09-29 15:50:48 673

原创 链接共享库和链接静态库的区别

链接共享库和链接静态库的区别链接libc共享库时:连接器只是确认可执行文件main引用的某些符号在libc中有定义,并没有最终确定这些符号的地址,这些符号在可执行文件main中仍然是未定义的符号,要在运行时动态链接;链接静态库时:连接器会把静态库中的文件取出,与可执行文件真正连接在一起。优点:1)链接时,只取出需要的目标文件进行连接,不需要的目标文件可以不链接。    2)

2013-09-29 11:30:15 1120

原创 包含头文件时<>与“”的区别

包含头文件时例:#include 用角括号,则gcc首先查找-I选项指定的目录,然后查找系统的头文件目录;#include"stack.h" 则首先查找被处理的#include指示所在的当前文件所在的目录,然后查找-I,最后系统的头文件。注:-I选项可以指定相对路径也可以指定绝对路径,如果指定相对路径,她是相对于gcc进程当前工作目录的路径,而不是相对于正在被处理的#inc

2013-09-29 10:27:18 1071

转载 C指针——函数指针

一 通常的函数调用     一个通常的函数调用的例子://自行包含头文件void MyFun(int x);     //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){   MyFun(10);     //这里是调用MyFun(10);函数       return 0;}

2013-09-27 09:20:50 456

原创 《编程珠玑》—习题提示

1、考虑查找给定输入单词的所有变位词的问题。参考答案:1)仅给出单词与字典时:定义Key的计算规则,因为每一个单词及其变位词都有相同的构成字符,故而定有相同的Key值;例如:tomorrow的键值为mo3r2w,hello的键值为ehl2o;使用链表将所有变位词串在一起,hash_map的key为单词的key,value为链表的起始地址。 开始时,先遍历字典,将每个单词都按照key加入到对

2013-09-25 21:14:21 609

原创 一站式学习C编程 学习笔记(2)—运算符详解

一、位运算定义:C语言中提供的可以直接操作整数中的位的运算符;1.1按位与、或、异或、取反运算C语言中并不存在8位整数的位运算,故而操作数在做位运算之前都至少被提升为int型。注意提升为整数后高位填充的0或者1在取反时都要进行运算的,千万不要忽视!!!1.2移位运算注意:移位的位数必须小于左操作数的总位数;           在一定的取值范围内,讲一个整数左移一位相当

2013-09-24 10:03:24 688

翻译 An Abuse-Free Fair Contract-Signing Protocol Based on the RSA Signature——部分翻译

基于RSA签名的抗滥用公平合同签署协议摘要:公平的合同签署协议可让两个不可信的对等体以公平的方式在网络上交换他们对某一约定的合同的承诺,所以要么他们都获得了对方的签名,要么都没有获得。本文提出了一个基于RSA签名模式的新的数字合同签署协议。对于类似的问题,同现存的基于RSA的解决方案一样,我们的协议不仅公平而且乐观,因为仅当其中一方出现欺骗,或者通信信道出现中断时才会需要可信第三方的出现。此外

2013-09-24 08:45:30 817

SHA256/SHA512

SHA256/SHA512/SHA384的基本原理、算法描述及相关示例

2013-12-17

空空如也

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

TA关注的人

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