自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (15)
  • 收藏
  • 关注

转载 C语言中 #和##的运用

原文地址:http://koumeng5.blog.163.com/blog/static/35719040201111511595273/ 用的是CC2530作无线温度采集遇到一些问题如下面的定义: #define MCU_IO_OUTPUT_PREP(port, pin, val) st( P##port##SEL &= ~BM(pin); \   P##port##_##pi

2013-03-04 15:47:28 1123

原创 STM32 独立看门狗与窗口看门狗

STM32 有两个看门狗,一个是独立看门狗,一个是窗口看门狗.这里先说独立看门狗. 独立看门狗的特性是,要利用片内的40k RC振荡器作为时钟据(说这个RC是相当的不准),优点就是,即使CPU主晶振 停了,即使CPU进入了休眠模式,狗也可以生效.当CPU进入休眠模式,并且是深度休眠的时候,这个看门狗可以作为一个CPU 的定时唤醒闹钟,以达到超低功耗的同时还会定时醒来.看门狗由于最大可以分频到2

2013-02-27 15:47:04 4395 1

转载 51系列中data,idata,xdata,pdata的区别

从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、C

2012-11-19 12:32:29 2736

转载 C运行时库与C标准库的区别

c运行时库与c标准库的区别 c标准库包括常用的数学函数、字符串操作函数等等,这些函数都是由编程高手写的,效率高,很少出错,而且是完全符合c语言标准的函数。c运行库可以说是c标准库的扩展集,它是完全包含c标准库,但是在此基础之上添加了一些额外的函数(目前我所知道的就是由于操作系统的不同而导致的)。比如说c标准库的strcpy函数负责字符串的拷贝,但是由于缺少对目地字符串缓冲区大小的控制,极有可

2012-11-08 15:51:39 746

转载 VC++获取CPU使用率

#include #include #include #define SystemBasicInformation 0 #define SystemPerformanceInformation 2 #define SystemTimeInformation 3 #define Li2Double(x) ((double)((x).HighPart) * 4.2949672

2012-10-28 16:22:18 678

原创 虚拟机找不到网卡

虚拟机找不到网卡--〉虚拟网卡设置赶快记下来,不要下次再犯同样的错误。原因是没有添加网卡硬件设备。1. 关掉在虚拟机上打开的OS2.虚拟机--〉设置--〉硬件--〉添加3.选择以太网添加,具体配置如下:  1)把你的虚拟网卡VMnet8设置为自动获得IP、自动获得DNS 服务器,启用。  2)把你虚拟机中操作系统的“本地连接”也设置为自动获得IP、自动获得DNS服务器(在虚拟机中,右键“本地连接”

2012-10-20 20:16:26 3749

转载 VC++的Unicode编程

引用:http://hi.baidu.com/iehxi/item/322011c04e7163c5994aa0e4 VC++的Unicode编程 Unicode是解决多国语言的好办法,多多学习!     VC++的Unicode编程 来自 vckbase   我最近在使用VS2005做VC++/MFC方面的制作遇到了一些问题,这篇文章能够解决很多关于宽字符的周边。。呵呵,直接贴过来

2012-10-20 13:30:50 449

原创 获取外网IP和本机所有网卡地址信息

2012-04-27 10:49 获取外网IP和本机所有网卡地址信息

2012-10-20 13:22:44 527

原创 ANSI 与 UNICODE

ANSI 与 UNICODE   Ansi与Unicode-续集 ①、Ansi与Unicode简要说明及各自的优缺点: 他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用char格式表示一个字符,占用一个字节的存储空间,最多表示255个字符, 表示英文还可以,但对于中文、日文、韩文等语言来说就不够用了,所以如果你的程序是Ansi编码的话, 那

2012-10-20 13:17:05 431

genesis OSD UI平台教程

传统的处理手法是将特定场景下的OSD物件逐一用代码“画”出来,在遇到特定的UI事件时,再利用一堆if else判断出特定场景和操作对象,并做相应的OSD处理。在OSD较简单的情况下,其不失为一个可行的方法。但在遇到OSD场景和模式较多的情况下,这个if else的结构会变得很大,而且更为重要的是极易出错以及维护成本提高。随着OSD越来越复杂以及代码工作量的不断提高,人们意识到我们需要花费太多时间在这些“表面文章”上,而真正重要的应用层和设备驱动层的开发时间会受到影响,进而影响新产品的开发进度。固件工程师也不愿不断重复编写同样代码来满足不断改变客户的特定OSD需要。笔者早期也曾遭遇同样的困扰,面对部门里工程师毫无效率地做着同样的事情,感觉到开发一个统一的OSD UI平台的重要性。现在对于上述OSD UI进行的分析,可以让我们开发出独立于特定数字视频处理器平台和OSD发生机制的硬件环境的独立统一开发工具。事实上,平板显示芯片方案的重要提供者如Genesis、Pixelworks等为了加速其产品的开发和应用速度,已经提供了具有这样功能的基于Windows的固件开发工具。本文试图探讨这一类工具的运作原理,或许读者基于本文可以开发出自己所需要的工具,当然其应用具有更广泛的代表性。

2013-12-03

中文RFC文档(终极版)

中文RFC文档(终极版),可用于很多协议的开发规范

2013-07-09

华为BGP路由协议原理

详细介绍了BGP路由协议的原理,生动形象,便于BGP协议初学者理解。

2013-07-09

BGP zebra开源代码

基于TCP的路由协议BGP的源代码,由Zebra开源,包括OSPF,RIP,BGP等协议的具体实现。可用于基于TCP的应用层协议开发参考。尤其是VREP和RFC等标准的协议开发。

2013-07-08

哈雷EdgeQAM的软件说明书

详细描述了哈雷EdgeQAM的软件使用,是英文版的非常详细。

2013-07-08

学术论文写作

研究生学术论文写作指导,非常适用!尤其是要发表核心期刊的读者,帮助更大!

2012-07-12

FS2410用户光盘v2008

采用深圳优龙开发板,FS2410光盘的用户非常适用,内容很全!

2012-07-12

阎石+课后答案

数字电路 第五版 阎石 课后答案(分章节列出)

2011-10-06

基于单片机电子秒表设计毕业论文

近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到0.001s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。另外硬件部分设置了查看按键,可以对秒表上一次计时时间进行保存,供使用者查询。 本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现五位LED显示,显示时间为0~99.999秒,计时精度为0.001秒,能正确地进行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。

2011-05-08

java me 手机游戏教程

+《J2ME手机游戏开发技术详解》.pdf一本很好的教材,欢迎大家下载交流!

2010-03-04

考研寒假作息时间表考研寒假作息时间表

主要针对考研的同学设计的作息时间安排表,大家可以根据需要改动!

2010-01-13

迷宫最短路径迷宫最短路径

迷宫问题迷宫问题迷宫问题迷宫问题迷宫问题

2009-05-29

数据结构课设(哈夫曼,表达式求值。。。)

课程设计包含哈夫曼,表达式求值,哈希表;

2008-11-27

课程设计实验——八皇后_VC++游戏

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。   高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。   对于八皇后问题的实现,如果结合动态的图形演示,则可以使算法的描述更形象、更生动,使教学能产生良好的效果。下面是用Turbo C实现的八皇后问题的图形程序,能够演示全部的92组解。八皇后问题动态图形的实现,主要应解决以下两个问题。   (1)回溯算法的实现   (a)为解决这个问题,我们把棋盘的横坐标定为i,纵坐标定为j,i和j的取值范围是从1到8。当某个皇后占了位置(i,j)时,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。用语句实现,可定义如下三个整型数组:a[8],b[15],c[24]。其中:   a[j-1]=1 第j列上无皇后   a[j-1]=0 第j列上有皇后   b[i+j-2]=1 (i,j)的对角线(左上至右下)无皇后   b[i+j-2]=0 (i,j)的对角线(左上至右下)有皇后   c[i-j+7]=1 (i,j)的对角线(右上至左下)无皇后   c[i-j+7]=0 (i,j)的对角线(右上至左下)有皇后   (b)为第i个皇后选择位置的算法如下:   for(j=1;j<=8;j++) /*第i个皇后在第j行*/   if ((i,j)位置为空)) /*即相应的三个数组的对应元素值为1*/   {占用位置(i,j) /*置相应的三个数组对应的元素值为0*/   if i<8   为i+1个皇后选择合适的位置;   else 输出一个解   }   (2)图形存取   在Turbo C语言中,图形的存取可用如下标准函数实现:   size=imagesize(x1,y1,x2,y2) ;返回存储区域所需字节数。   arrow=malloc(size);建立指定大小的动态区域位图,并设定一指针arrow。   getimage(x1,y1,x2,y2,arrow);将指定区域位图存于一缓冲区。   putimage(x,y,arrow,copy)将位图置于屏幕上以(x,y)左上角的区域。   (3)程序清单如下   #include <graphics.h>   #include <stdlib.h>   #include <stdio.h>   #include <dos.h>   char n[3]={'0','0'};/*用于记录第几组解*/   int a[8],b[15],c[24],i;   int h[8]={127,177,227,277,327,377,427,477};/*每个皇后的行坐标*/   int l[8]={252,217,182,147,112,77,42,7}; /*每个皇后的列坐标*/   void *arrow;   void try(int i)   {int j;   for (j=1;j<=8;j++)   if (a[j-1]+b[i+j-2]+c[i-j+7]==3) /*如果第i列第j行为空*/   {a[j-1]=0;b[i+j-2]=0;c[i-j+7]=0;/*占用第i列第j行*/   putimage(h[i-1],l[j-1],arrow,COPY_PUT);/*显示皇后图形*/   delay(500);/*延时*/   if(i<8) try(i+1);   else /*输出一组解*/   {n[1]++;if (n[1]>'9') {n[0]++;n[1]='0';}   bar(260,300,390,340);/*显示第n组解*/   outtextxy(275,300,n);   delay(3000);   }   a[j-1]=1;b[i+j-2]=1;c[i-j+7]=1;   putimage(h[i-1],l[j-1],arrow,XOR_PUT);/*消去皇后,继续寻找下一组解*/   delay(500);   }}   int main(void)   {int gdrive=DETECT,gmode,errorcode;   unsigned int size;   initgraph(&gdrive,&gmode,"");   errorcode=graphresult();   if (errorcode!=grOk)   {printf("Graphics error\n");exit(1);}   rectangle(50,5,100,40);   rectangle(60,25,90,33);   /* 画皇冠 */   line(60,28,90,28);line(60,25,55,15);   line(55,15,68,25);line(68,25,68,10);   line(68,10,75,25);line(75,25,82,10);   line(82,10,82,25);line(82,25,95,15);   line(95,15,90,25);   size=imagesize(52,7,98,38); arrow=malloc(size);   getimage(52,7,98,38,arrow); /* 把皇冠保存到缓冲区 */   clearviewport();   settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4);   setusercharsize(3, 1, 1, 1);   setfillstyle(1,4);   for (i=0;i<=7;i++) a=1;   for (i=0;i<=14;i++) b=1;   for (i=0;i<=23;i++) c=1;   for (i=0;i<=8;i++) line(125,i*35+5,525,i*35+5); /* 画棋盘 */   for (i=0;i<=8;i++) line(125+i*50,5,125+i*50,285);   try(1); /* 调用递归函数 */   delay(3000);   closegraph();   free(arrow);   }   二、循环实现 Java   /*   * 8皇后问题:   *   * 问题描述:   * 在一个8×8的棋盘里放置8个皇后,要求每个皇后两两之间不相冲突   *(在每一横列,竖列,斜列只有一个皇后)。   *   * 数据表示:   * 用一个 8 位的 8 进制数表示棋盘上皇后的位置:   * 比如:45615353 表示:   * 第0列皇后在第4个位置   * 第1列皇后在第5个位置   * 第2列皇后在第6个位置   * 。。。   * 第7列皇后在第3个位置   *   * 循环变量从 00000000 加到 77777777 (8进制数)的过程,就遍历了皇后所有的情况   * 程序中用八进制数用一个一维数组 data[] 表示   *   * 检测冲突:   * 横列冲突:data == data[j]   * 斜列冲突:(data+i) == (data[j]+j) 或者 (data-i) == (data[j]-j)   *   * 好处:   * 采用循环,而不是递规,系统资源占有少   * 可计算 n 皇后问题   * 把问题线性化处理,可以把问题分块,在分布式环境下用多台计算机一起算。   *   * ToDo:   * 枚举部分还可以进行优化,多加些判断条件速度可以更快。   * 输出部分可以修改成棋盘形式的输出   *   * @author cinc 2002-09-11   *   */   public class Queen {   int size;   int resultCount;   public void compute ( int size ) {   this.size = size;   resultCount = 0;   int data[] = new int[size];   int count; // 所有可能的情况个数   int i,j;   // 计算所有可能的情况的个数   count = 1;   for ( i=0 ; i<size ; i++ ) {   count = count * size;   }   // 对每一个可能的情况   for ( i=0 ; i<count ; i++ ) {   // 计算这种情况下的棋盘上皇后的摆放位置,用 8 进制数表示   // 此处可优化   int temp = i;   for ( j=0 ; j<size ; j++ ) {   data [j] = temp % size;   temp = temp / size;   }   // 测试这种情况是否可行,如果可以,输出   if ( test(data) )   output( data );   }   }   /*   * 测试这种情况皇后的排列是否可行   *   */   public boolean test( int[] data ) {   int i,j;   for ( i=0 ; i<size ; i++ ) {   for ( j=i+1 ; j<size ; j++ ) {   // 测试是否在同一排   if ( data == data[j] )   return false;   // 测试是否在一斜线   if ( (data+i) == (data[j]+j) )   return false;   // 测试是否在一反斜线   if ( (data-i) == (data[j]-j) )   return false;   }   }   return true;   }   /*   * 输出某种情况下皇后的坐标   *   */   public void output ( int[] data ) {   int i;   System.out.print ( ++resultCount + ": " );   for ( i=0 ; i<size ; i++ ) {   System.out.print ( "(" + i + "," + data + ") " );   }   System.out.println ();   }   public static void main(String args[]) {   (new Queen()).compute( 8 );   }   }   三、八皇后问题的Qbasic版的解决方案   10 I = 1   20 A(I) = 1   30 G = 1   40 FOR K = I - 1 TO 1 STEP -1   50 IF A(I) = A(K) THEN 70   60 IF ABS(A(I) - A(K)) <> I - K THEN 90   70 G = 0   80 GOTO 100   90 NEXT K   100 IF I <> 8 THEN 180   110 IF G = 0 THEN 180   120 FOR L = 1 TO 8   130 PRINT USING “##”; A(L);   140 NEXT L   150 PRINT “*”;   160 M = M + 1   170 IF M MOD 3 = 0 THEN PRINT   180 IF G = 0 THEN 230   190 IF I = 8 THEN 230   200 I = I + 1   210 A(I) = 1   220 GOTO 30   230 IF A(I) < 8 THEN 270   240 I = I - 1   250 IF I = 0 THEN 290   260 GOTO 230   270 A(I) = A(I) + 1   280 GOTO 30   290 PRINT   300 PRINT “SUM=”; USING “##”; M;   310 PRINT   320 END   四、八皇后问题的高效解法-递归版   //8 Queen 递归算法   //如果有一个Q 为 chess=j;   //则不安全的地方是 k行 j位置,j+k-i位置,j-k+i位置   class Queen8{   static final int QueenMax = 8;   static int oktimes = 0;   static int chess[] = new int[QueenMax];//每一个Queen的放置位置   public static void main(String args[]){   for (int i=0;i<QueenMax;i++)chess=-1;   placequeen(0);   System.out.println("\n\n\n八皇后共有"+oktimes+"个解法 made by yifi 2003");   }   public static void placequeen(int num){ //num 为现在要放置的行数   int i=0;   boolean qsave[] = new boolean[QueenMax];   for(;i<QueenMax;i++) qsave=true;   //下面先把安全位数组完成   i=0;//i 是现在要检查的数组值   while (i<num){   qsave[chess]=false;   int k=num-i;   if ( (chess+k >= 0) && (chess+k < QueenMax) ) qsave[chess+k]=false;   if ( (chess-k >= 0) && (chess-k < QueenMax) ) qsave[chess-k]=false;   i++;   }   //下面历遍安全位   for(i=0;i<QueenMax;i++){   if (qsave==false)continue;   if (num<QueenMax-1){   chess[num]=i;   placequeen(num+1);   }   else{ //num is last one   chess[num]=i;   oktimes++;   System.out.println("这是第"+oktimes+"个解法 如下:");   System.out.println("第n行: 1 2 3 4 5 6 7 8");   for (i=0;i<QueenMax;i++){   String row="第"+(i+1)+"行: ";   if (chess==0);   else   for(int j=0;j<chess;j++) row+="--";   row+="++";   int j = chess;   while(j<QueenMax-1){row+="--";j++;}   System.out.println(row);   }   }   }   //历遍完成就停止   }   }

2008-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除