易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

c实现的求两个数的乘法逆元

定义:设a对b的乘法逆元是x则可以记为a*x=1 mod b,即a和x的积除以b的余数是1;
 
乘法逆元常用算法是欧几里德算法:
 
//算法求d关于模f的乘法逆元d-1 ,即 d* d-1 mod f = 1
 
  1 。(X1,X2,X3) := (1,0,f); (Y1,Y2,Y3) := (0,1,d)
  2。 if (Y3=0) then return d-1 = null //无逆元
  3。 if (Y3=1) then return d-1 = Y2 //Y2为逆元
  4。 Q := X3 div Y3 //整除
  5。 (T1,T2,T3) := (X1 - Q*Y1,X2 - Q*Y2,X3 - Q*Y3)
  6 。(X1,X2,X3) := (Y1,Y2,Y3)
  7。 (Y1,Y2,Y3) := (T1,T2,T3)
8。 goto 2
 
常用于加密算法中,如仿射算法。
 
采用扩展欧几里德算法
 
首先,欧几里德算法又称辗转相除法,用于求最大公约数,算法如下:
int Gcd(int a, int b)
{
    if(b == 0)
        return a;
    return Gcd(b, a % b);
}
 
求一个数对另一个数的乘法逆元算法如下:
Typedef unsigned short int uint16;
uint16 mulinv(uint16 b,uint16 a)      //求一个整数b对a的乘法逆元 ......

用CSocket构建C/S结构

转帖http://www.cppblog.com/bidepan2023/archive/2008/01/22/41632.html
CSocket派生于CAsyncSocket, 所有施诸于上的操作皆为同步操作。比如Connnect,Receive等。
同步操作的优点是简单易用,但缺点也显而易见,效率低下,因为你必须等到一个操作完成之后才能进行下一个操作。
如果你很关心效率,就应该优先使用CAsyncSocket。反之就用CSocket。
下面将说明如何用CSocket创建简单的服务器和客户端。
[创建服务器]
服务器的运作有5个阶段:
1. 创建服务器Socket并开启监听。
2. 获取新的客户端连接Socket,将之加入客户端Socket列表以管理之。
3. 客户端Socket读取数据并发送数据。
4. 客户端连接被动关闭,从列表删除。
5. 程序关闭,进而服务器连接主动关闭。
为了维持5阶段的运作,需要两种Socket协同工作, 第一种用作服务器监听(负责步骤1,2,5),第二种用作客户端管理(负责步骤3,4)。
两种Socket皆派生自CSocket, 通过重写不同的CSocket成员函数以实现不同的功能。
前者需要在服务器初始化阶段创建出来CSocket::Create()并开启监听CSocket::Listen()(步骤1)。并在服务器退出时主动关闭连接CSocket::Close()(步骤5)。
前者还需要重写OnAccept以在 ......

c 的 struct,没有结构体名的结构体数据类型

一直对结构体弄的模糊,今天终于有机会澄清了。有个错:不明白没有结构体名的结构体如何像结构体名一样使用。
typedf struct                               strcut student
{                                                  {      
                                                         int name;
......

emacs 快捷键(包括C/C++模式)

符号
      C-  意思是按住 Ctrol 键
M-   意指 Meta 键 (键盘上若无Meta 键,则可以ALT ESC 键来取而代之)
DEL  意指退格键 (不是 删除(Delete) key)
RET  意指回车键
SPC  意指空格键
ESC  意指Escape键
TAB  意指Tab键
像 "C-M-" (or "M-C") 这样连在一起的意味着同时按住 Control 和 Meta 键不放.
用方向键
   C-p 、 C-b 、 C-f 和 C-n 这四个命令。它们的功能和方向键是一样的,如下图所示:
            上一行 C-p (Prev line)
                          .
                          .
                         ......

emacs 快捷键(包括C/C++模式)

符号
      C-  意思是按住 Ctrol 键
M-   意指 Meta 键 (键盘上若无Meta 键,则可以ALT ESC 键来取而代之)
DEL  意指退格键 (不是 删除(Delete) key)
RET  意指回车键
SPC  意指空格键
ESC  意指Escape键
TAB  意指Tab键
像 "C-M-" (or "M-C") 这样连在一起的意味着同时按住 Control 和 Meta 键不放.
用方向键
   C-p 、 C-b 、 C-f 和 C-n 这四个命令。它们的功能和方向键是一样的,如下图所示:
            上一行 C-p (Prev line)
                          .
                          .
                         ......

linux C 编程环境的组建

用记事本写C程序,并编译。    刚装好的系统
中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件
包,安装了这个包会自动安装上g++,libc6-dev,linux
-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。
    可以在新立得里面搜索build-essential或在终端输入下面命令

    代码:
    sudo apt-get install build-essential
man 手册 查看系统调用和库函数
sudo apt-get install manpages-dev
如想查看read系统调用 可以采用 man 2 read
locate 搜索某一文件闻之
grep 搜索文件中的内容 ......

linux C 编程环境的组建

用记事本写C程序,并编译。    刚装好的系统
中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件
包,安装了这个包会自动安装上g++,libc6-dev,linux
-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。
    可以在新立得里面搜索build-essential或在终端输入下面命令

    代码:
    sudo apt-get install build-essential
man 手册 查看系统调用和库函数
sudo apt-get install manpages-dev
如想查看read系统调用 可以采用 man 2 read
locate 搜索某一文件闻之
grep 搜索文件中的内容 ......

c 语言函数传参的三种方式及二级指针的理解

普通变量是直接传值show(int a,int b)
指针变量传递地址show(int *a,int *b)
引用变量是隐式传地址 1:int x;void show(int &x),实际传递的是x的地址p,但是函数内部使用x时会自动变成*p
                                 void f(int &x) {x++}; 会变成
                                 void f(int *p) {(*p)++};
                                2:int *x;void show(int &x),实际已经构成了二级指针。
对二级指针的深入理解:函数间的指针引用或传递,其实质也是对地址的拷贝,即做了了副本放在引用的函数里。
#include<stdio.h&g ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [6596] [6597] [6598] [6599] 6600 [6601] [6602] [6603] [6604] [6605]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号