Nov
4
这两天在看密码学的大作业,写一个DES加密程序,里面有很多涉及位运算的东西。
虽然直接用bitset写,但是非常非常地不顺手,于是自己写了一个类,里头有DES需要的运算,恩。
如果谁发现有错的话,麻烦告诉我一声。
好久没有写这样的代码了,一个简单的类居然花了这么久。囧。
虽然直接用bitset写,但是非常非常地不顺手,于是自己写了一个类,里头有DES需要的运算,恩。
如果谁发现有错的话,麻烦告诉我一声。
好久没有写这样的代码了,一个简单的类居然花了这么久。囧。
Nov
1
indent - changes the appearance of a C program by inserting or deleting whitespace.
indent是一个开源的C/C++代码规范化工具,提供非常多的选项,不过只用一个就很适合我了^^
具体的做法是
$ gedit ~/.indent.pro
输入内容为:
OK,以后只要用
$ indent ooxx.cpp
就可以把 ooxx.cpp 格式化成linux风格,正好适合我^^
indent是一个开源的C/C++代码规范化工具,提供非常多的选项,不过只用一个就很适合我了^^
具体的做法是
$ gedit ~/.indent.pro
输入内容为:
引用
-linux
OK,以后只要用
$ indent ooxx.cpp
就可以把 ooxx.cpp 格式化成linux风格,正好适合我^^
Oct
30
题目:给出2N个正数,找出其中两个不凑对的。
e.g.:
对于1, 2, 2, 3, 4, 5, 3, 4,不凑对的是1和5
算法思路1(momodi给出):
设不凑对的两个数分别为m和n
1. 对所有数字进行XOR,得出k,则必有k != 0
2. 找到 k 二进制表示中的某一个 1,必有m和n该位分别为1和0
3. 根据该位置为1或0,把所有数分为两a, b半
4. 对a、b两半分别异或,即得出m、n
此算法可以保证正确性,以及O(N)的时间复杂度、O(1)的附加空间。
算法思路2(felix给出):
e.g.:
对于1, 2, 2, 3, 4, 5, 3, 4,不凑对的是1和5
算法思路1(momodi给出):
设不凑对的两个数分别为m和n
1. 对所有数字进行XOR,得出k,则必有k != 0
2. 找到 k 二进制表示中的某一个 1,必有m和n该位分别为1和0
3. 根据该位置为1或0,把所有数分为两a, b半
4. 对a、b两半分别异或,即得出m、n
此算法可以保证正确性,以及O(N)的时间复杂度、O(1)的附加空间。
算法思路2(felix给出):
Oct
29
安装了exim,测试一下,gmail成功收到邮件。
telnet localhost 25
下面是转贴的,如何通过telnet方式连接到smtp/pop服务器进行邮件的收发:
telnet localhost 25
引用
helo felix021
mail from: felix021@felix021-laptop
rcpt to: felix021[at]gmail.com
data
subject: test
line 1
line 2
.
mail from: felix021@felix021-laptop
rcpt to: felix021[at]gmail.com
data
subject: test
line 1
line 2
.
下面是转贴的,如何通过telnet方式连接到smtp/pop服务器进行邮件的收发:
Oct
29
对于HEAD和GET,已经比较了解了,但是对POST发送的请求格式特别是HTTP实体,尤其是带有文件的HTTP请求,还很不了解,于是刚刚用PHP写了一个简单的"服务器"程序,看看浏览器到底给我发了什么,代码如下:
1. server.php
很简单的一个脚本,等待8080端口的请求,输出请求内容,然后返回一个像模像样的东东。不过需要注意,用浏览器进行请求的时候需要在发送完毕以后点击停止按钮(断开连接),这个脚本才会断开连接。脚本还存在一些其他问题,比如字符0好像输出得不太对头。不过差不多够用,大致可以让我看清楚浏览器发了什么过来。代码如下:
1. server.php
很简单的一个脚本,等待8080端口的请求,输出请求内容,然后返回一个像模像样的东东。不过需要注意,用浏览器进行请求的时候需要在发送完毕以后点击停止按钮(断开连接),这个脚本才会断开连接。脚本还存在一些其他问题,比如字符0好像输出得不太对头。不过差不多够用,大致可以让我看清楚浏览器发了什么过来。代码如下:
Oct
29
* 教您怎样使用位运算实现循环移位
* 来源:http://www.idcnews.net/html/edu/C/20070606/235880.html
循环移位区分于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程式中时有使用,在一些控制程式中用得也不少。
设有数据说明:
a=01111011,循环左移2位 正确结果: 11101101
过程:
* 来源:http://www.idcnews.net/html/edu/C/20070606/235880.html
循环移位区分于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程式中时有使用,在一些控制程式中用得也不少。
设有数据说明:
a=01111011,循环左移2位 正确结果: 11101101
过程:
Oct
28
以下一步一步以Felix的实际操作为例
演示如何在Windows下安装Apache2.2 + PHP5.2 + MySQL5
1. 建立目录 C:\web, C:\web\www
2. 安装 apache 2.2 到 (选择Custom方式安装) C:\web\apache
3. 打开浏览器访问 http://localhost
看到 It works! 表示安装正常,否则需要再处理一下。
打开命令提示符,
演示如何在Windows下安装Apache2.2 + PHP5.2 + MySQL5
1. 建立目录 C:\web, C:\web\www
2. 安装 apache 2.2 到 (选择Custom方式安装) C:\web\apache
3. 打开浏览器访问 http://localhost
看到 It works! 表示安装正常,否则需要再处理一下。
打开命令提示符,