标签为 "C#" 的存档

深入理解计算机系统P36练习题2.15

深入理解计算机系统P36
练习题2.15
只使用位级和逻辑运算,编写一个C表达式,他等价于x==y。换句话说,当x和y相等时他将返回1,否则就返回0.

题目考察的是位级运算符和逻辑运算符的用法,以下是两种实现方式,供参考:

#include 

void main(){
int x = 0x1101, y = 0x1100;
printf("%dn", 0x01 ^ x ^ y || 0);
printf("%dn", !(x ^ y));
x = 0x1101;
y = 0x1101;
printf("%dn", 0x01 ^ x ^ y || 0);
printf("%dn", !(x ^ y));
}

libmemcached – error: sasl/sasl.h: No such file or directory

尝试用libmemcached的类库链接memcache的时候,报错:sasl/sasl.h: No such file or directory。
经查发现是没有安装sasl的开发库,所以需要安装下,stackoverflow上说安装一个libsasl2-dev,用yum没找到,然后使用sasl和dev关键字筛选了下,得到了一个libgsasl-devel,然后就装上试了试,就ok了。

sasl/sasl.h: No such file or directory

sasl/sasl.h: No such file or directory

install libgsasl-devel

install libgsasl-devel

Read more…

结构体struct和联合体union的区别

结构体-struct是把若干个数据类型组合到一起,相当于形成一个结构类型,这样的结构体变量就拥有结构体所包含的所有的数据类型。
结构体所占用的内存单元是它里面包含数据类型所占内存单元的总和。

联合体-union是为了节省内存而设置的,若干个不同数据类型共用一组内存单元。
联合体所占的内存单元是它所包含的数据类型中占用内存单元最大的那个数据类型所占用的内存单元的值。

  union   test1
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test1)==sizeof(long)   
    
  struct  test2
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test2)==sizeof(long)+sizeof(char)

struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。
对于union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于struct的不同成员赋值是互不影响的。

Read more…

溢出 C语言

在C 语言中, 若初值上溢, 则编译通不过; 若运行动态上溢, 则运行出错; 若下溢, 则值按0 处理。对于无符号整数, 其值若超过最大无符号数, 则取其最大无符号数加1 的模; 对于有符号整数, 最大正整数的值加1 后变成最大的负整数值, 最大的负整数值减1 后变成最大的正整数值。

中文分词和搜索引擎

中文分词的算法

中文分词技术的研究,已经有几十年的历史了,在20世纪80年代,我国就有人开始研究如何用计算机来自动分词。如何让机器去识别语言中最小的语意单位,不是一件很容易的事情。

如何进行分词?对于程序员来说,最容易想到的办法是,用一个大词典,把所有的词都存入词典中,扫描输入的文本,查找所有可能的词,然后看哪个词可以做为输出。例如:
输入文本: 我是学生
词: 我/是/学生

其实这样做了以后,可以解决60%的问题。总结起来,分词的算法分为:
1. 基于字符串匹配的分词方法
2. 基于理解的分词方法
3. 基于统计的分词方法

Read more…

【ASP.net文档】用C#实现HTTP协议下的多线程文件传输

很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序,也能够快速的在互联网上下载文件,那一定是非常愉快的事情。下面介绍一下如何利用C#语言编写一个支持多线程下载文件的程序,你会看到利用C#语言编写网络应程序是多么的容易,从中也能体会到C#语言中强大的网络功能。

首先介绍一下HTTP协议,HTTP亦即Hpyer Text Transfer Protocal的缩写,它是现代互联网上最重要的一种网络协议,超文本传输协议位于TCP/IP协议的应用层,是一个面向无连接、简单、快速的C/S结构的协议。HTTP的工作过程大体上分连接、请求、响应和断开连接四个步骤。C#语言对HTTP协议提供了良好的支持,在.NET类库中提供了WebRequest和WebResponse类,这两个类都包含在System.Net命名空间中,利用这两个类可以实现很多高级的网络功能,本文中多线程文件下载就是利用这两个类实现的。 WebRequest和WebResponse都是抽象基类,因此在程序中不能直接作为对象使用,必须被继承,实际使用中,可根据URI参数中的URI前缀选用它们合适的子类,对于HTTP这类URI,HttpWebRequest和HttpWebResponse类可以用于处理客户程序同WEB服务器之间的HTTP通讯。

Read more…

mysql-select into-not in()-给C#转型来的PHP程序员的一点小提示

搞C#、.NET的,大都用的mssql数据库,但是在mysql里边,有一些mssql的用法是不适用的,以下是我今天刚经历的两个例子,共大家参考。

1、SELECT INTO TABLE

在mssql中, 有如下用法,可以直接把查询出的数据放到一个新表中,这条语句可以很好的用来备份表。

select * into table1_bak from table1

2、not in()
在mssql中, not in () 的括弧内可以直接放置sql语句,也可以很方便的实现特殊查询。

select * from bill_log where bill_id not in(select bill_id from bill_log07)

这条语句在mysql中就会报错。
Read more…

简明教程:如何在Solaris操作系统上开发C 应用程序

1,开发C程序的必要工具和设置

A,Solaris下的开发工具

在solaris下开发C应用程序,缺省开发环境是Sun Studio。目前Sun Studio 11是Sun公司最新的C/C++/Fortran开发工具,这个工具已经安装在Unix体验中心的服务器上,我们可以直接使用。在Sun Studio 中,其中C程序的编译工具名称为cc。还有的就是make这个命令,make命令是Solaris安装后就自带了,不需要我们另外安装。

Read more…

学以致用

各个部门总是有数据库用户查询的需求,每次都要跑去拼凑个sql语句,查出来,再把结果导出成excel,有点繁琐。

于是,自己抽空鼓捣了一个小tools,可以很方便的查询了,而且在导出前会显示sql语句,可以再次灵活的修改sql语句后再进行导出操作,很方便,他们来提需求,马上就可以给他们结果啦~

.Net制作的数据库查询小工具

.Net制作的数据库查询小工具

Read more…

C# Winform中导出DataSet到Excel,使用保存文件对话框

首先,需要添加引用Excel.dll,Excel组件VS.Net本身是没有的,以下是生成Excel.dll的方法。

1.要保证机器本身要安装Microsoft Office。

2.把C:Program FilesMicrosoft OfficeOffice1:【office 安装路径】下的EXCEL9.OLB文件拷贝到C:Visual Studio.NetSDKv1.1Bin:【VS.Net安装路径】路径下。

3.打开Visual Studio .Net2003/2008命令提示,运行TlbImp Excel9.olb Excel.dll ,就会在[C:Visual Studio.NetSDKv1.1Bin]下生成Excel.dll组件。(Tlbimp命令是vs自带的一个工具,位于Microsoft Visual Studio 8SDKv2.0Bin下)

4.把Excel.dll复制到你的项目中,在项目中添加Excel.dll引用就可以了。(最好是用最新版本的Office生成excel.dll,否则旧版本的office的dll有可能在高版本机器上不兼容。)

Read more…