摘要:
兼容性强的定义摄像头像素无关分辨率无关屏幕方向无关摄像头像素无关像素无关体现在,无论摄像头的像素几何,我都能获取到相对合适的照片。 假设这里的合适是指:需要的照片尺寸和摄像头获取到的数据尺寸是相吻合的。float scale = expectedHeight / expectedWidth;List... 阅读全文
摘要:
实验8是要求阅读一个很奇葩的代码:assume cs:codecode segment mov ax, 4c00h int 21h start: mov ax, 0s: nop nop ;下面这段代码主要是把s2的内容复制到s处 mov di, offset s mov si, offset s2 mov ax, cs:[si] mov cs:[di], ax s0: jmp short s s1: mov ax, 0 int 21h mov ax, 0 s2: jmp short s1 nopcode endsend start先看看开始时代码在... 阅读全文
摘要:
因为实验7中的数据太多,我就对其缩减了一些。因为其中用到很多的寄存器,但是每个寄存器都有限制规则,所以要精心分配寄存器。最先分配的是两个段寄存器,data用ds存放, table用es存放。然后要确定循环使用的寄存器cx;然后要精心分配指向table和data地址的寄存器,由于能够指向地址的寄存器只有bx, si di, bp,选其中三个进行地址的指定,我的选择是: 一个指向table地址的寄存器bp,一个指向年份和收入的寄存器di,一个指向雇员的寄存器si;最后确定使用div命令所需要的ax和dx。分配好寄存器后就是进行编码工作了。编码过程中发现,原来不能使用这样的命令:mov 地址, 地址 阅读全文
摘要:
最近学习了一下8086的16位汇编语言,学习了一种比较奇葩的进行字母大小写转换的方法。不必用CMP语句进行判断,一步到位。当然前提要求是输入的数据必须是字母哈。把字母的ASCII码用二进制查看:大写 16进制 二进制 小写 16进制 二进制A 41 0100 0001 a 61 0110 0001B 420100 0010 b 62 0110 0010C 43 0100 0011 c 63 0110 0011D 44 0100 0100...Z5A 0101 1010 z 7A 0111 1010明显的,小写的ASCII值 = 大写的ASCII值 + 20H而且,小写... 阅读全文
摘要:
众所周知,不可能有永远都不会出错的人,同样也不可能有永远不出错的计算机,永远不出错的数据。 人有知错能改的觉悟,计算机也有,不过计算机没有人类聪明,只能通过一个特定的方法进行自我改正,这就是校验码存在的必要了。 一般用得比较多的校验码有奇偶校验码,CRC循环冗余校验码,海明校验码等。 这里只介绍用的最多的CRC循环冗余校验码。 何为校验码 校验码是通过一种计算方... 阅读全文
摘要:
调试的重要性不必多说。 这里以Microsoft Visual Studio 2012为例,其他的IDE调试方法类似,具体以IDE为准。 这是Visual Studio 2012的下载地址: http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-478C-849A-02C8395D0995/VS2012_ULT_chs.iso ... 阅读全文
摘要:
来源:http://poj.org/problem?id=1860 题目的大意,就是要通过多次交易,使得回到开始节点时的钱数增加。 类似于寻找负权回路,但是这里要走回到开始节点。 而对于负权回路,可以用bell-manford或者SPFA,这里用了SPFA。 在SPFA时,当开始节点的钱数>原始钱数,我们就可以退出SPFA,直接输出了。 对于原始的SPFA,这里的relax操作要改... 阅读全文
摘要:
来源:http://ace.delos.com/usacoprob2?a=ahwL0nwmf1s&S=spin 暴力,水水的过了。 耗时估计是:360*360*n,n为总的缺口数。 由于n越大,缺口数越多,通光的几率越大,故根本不必在意时间的消耗。 #include <iostream>#include <cstdio>#include <cstring>using... 阅读全文
摘要:
来源:http://ace.delos.com/usacoprob2?a=5LTgWx8eTT9&S=fact4 这题有什么好说的呢?不必麻烦的数学证明,不必高精度。 每次阶乘时把最后的0去掉,并且只需保存两三位数就够了,这样就不用担心只保存一位时相乘后只剩下0的情况。 /*ID:ay27272PROG:fact4LANG:C++*/#include <iostream>#... 阅读全文
摘要:
来源:http://ace.delos.com/usacoprob2?a=5LTgWx8eTT9&S=stamps 一个简单的DP题。 F[i] = min(F[i], F[i-value[j]]+1) F[i]表示凑出i所需的最少钱的张数,若F[i]>n,自然就不能用n张钱凑出i来了。 最后的结果就是i的最大值了。 /*ID:ay27272PROG:stampsLAN... 阅读全文