信息技术基础
起个马甲好困难
这个作者很懒,什么都没留下…
展开
-
定点数(纯整数/纯小数)补码
补码表示的引入是基于模的概念。所谓模是指一个计数器的容量。比如钟表以12为一个计数循环,即可看做以12为模。在进行钟表对时时,假设当前钟表的时针停在九点位置,要将时针拨到2点,可以采用两种方法。一种是顺时针拨动指针向前5个小时,9+5=14,14-12=2,指针指向2点。这是因为钟表上只有12个刻度,即钟表的计数容量是12,当指针超过12点的时候钟表要重新从0点开始计时;另一种方法是逆时针转动7个转载 2015-04-26 20:33:11 · 11481 阅读 · 8 评论 -
经典C源程序100例
http://post.baidu.com/f?kz=8618367有排体罗,呵呵!转载 2015-04-26 20:42:24 · 251 阅读 · 0 评论 -
位运算简介及实用技巧(四):实战篇
下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。 Matrix67原创,转贴转载 2015-04-26 20:39:27 · 300 阅读 · 0 评论 -
位运算简介及实用技巧(三):进阶篇(2)
今天我们来看两个稍微复杂一点的例子。n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,rd转载 2015-04-26 20:38:42 · 365 阅读 · 0 评论 -
用Dijkstra算法输出最短路径以及对应的最小权值(C语言版)
自己看《数据结构》的时候,发现教科书上提供的算法貌似只是把最短路径上的顶点放到一个二维数组里头就完事了,却没有给出路径上顶点的输出次序。一个顶点数组就叫做最短路径,编者也太不负责任了吧,好歹也给个根据得到的路径顶点数组求该路径的方法吧?还是编者想让读者有自己思考的余地??不过回头想想,如果通过那个路径顶点的二维数组,按照路径长度从小到大,输出长路径时先输出短路径包含的顶点的原则来分别输出这些路径,转载 2015-04-26 20:35:55 · 2569 阅读 · 0 评论 -
十大常用数据结构
十大常用数据结构一、栈:1、后缀表达式的求值; 2、中缀到后缀表达式的转换; 3、深度优先搜索的非递归实现; 4、动态规划的优化:用于维护一个凸序列,便于二分查找,如LIS问题的O(nlgn)算法。 二、队列: 1、树的层序遍历; 2、广度优先搜索; 3、Bellman-Ford算法的SPFA实现; 4、网络流中FF算法的Edmonds-Karp实现转载 2015-04-26 20:33:03 · 354 阅读 · 0 评论 -
源码 补码 反码
大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2^8(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~2^8-1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。别停下,还转载 2015-04-26 20:41:30 · 520 阅读 · 1 评论 -
源码 补码 反码
大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2^8(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~2^8-1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。别停下,还转载 2015-04-26 20:39:48 · 315 阅读 · 0 评论 -
负数利用补码的原理
在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。补码与原码的转换过程几乎是相同的。 数值的补码表示也分两种情况: (1)正数的补码:与原码相同。 例如,+9的补码是00001001。 (2)负数的补码:符号位为1,其余位为该转载 2015-04-26 20:40:14 · 971 阅读 · 1 评论 -
位运算简介及实用技巧(二):进阶篇(1)
===== 真正强的东西来了! =====二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longin转载 2015-04-26 20:36:28 · 250 阅读 · 0 评论 -
位运算简介及实用技巧(一):基础篇
什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):转载 2015-04-26 20:35:31 · 263 阅读 · 0 评论 -
【操作系统实验】模拟单处理器系统的进程调度
操作系统本来就是一门令人十分郁闷的课,学生想学好,但很难看懂,而老师又不好讲课,但看来学校的领导显然还没有意识到这点,还居然要咱们把进程的调度算法给写出来(真的很想给老师们一个good……)!虽然是一个比较简单的“带时间片的先来先服务”调度算法(而且是一个阉割版本),但对于编程能力不强、对操作系统原理不熟悉的同学仔来讲,仍然是一次华丽的绝杀,血雨腥风…… 本来打算从网上随便cop转载 2015-04-26 20:33:55 · 5156 阅读 · 0 评论 -
学c容易常出的错误
http://post.baidu.com/f?z=4275539&ct=335544320&lm=0&sc=0&rn=50&tn=baiduPostBrowser&word=c%D3%EF%D1%D4&pn=0C语言的最大特点是:功能强,使用方便灵活.C编译的程序对语法 检查并不象其它高级语言那么严格,这就给编程人员留下"灵活的 余地",但还是由于这个灵活给程序的调试带来了许转载 2015-04-26 20:41:53 · 220 阅读 · 0 评论