欢迎来到天天文库
浏览记录
ID:26603867
大小:459.53 KB
页数:54页
时间:2018-11-27
《编程之美随书源代码-中文注释》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、54第1章游戏之乐——游戏中碰到的题目代码清单1-11.intmain(){for(;;{for(inti=0;i<9600000;i++);Sleep(10);}return0;}代码清单1-2intbusyTime=10;//10msintidleTime=busyTime;//sameratiowillleadto50%cpuusageInt64startTime=0;while(true){startTime=GetTickCount();//busyloopwhile((GetTickCount()-startTime)<=b
2、usyTime);//idleloopSleep(idleTime);}代码清单1-32.//C#codestaticvoidMakeUsage(floatlevel){PerformanceCounterp=newPerformanceCounter("Processor","%ProcessorTime","_Total");54if(p==NULL){return}while(true){if(p.NextValue()>level)System.Threading.Thread.Sleep(10);}}代码清单1-4//C++c
3、odetomaketaskmanagergeneratesinegraph#include"Windows.h"#include"stdlib.h"#include"math.h"constdoubleSPLIT=0.01;constintCOUNT=200;constdoublePI=3.14159265;constintINTERVAL=300;int_tmain(intargc,_TCHAR*argv[]){DWORDbusySpan[COUNT];//arrayofbusytimesDWORDidleSpan[COUNT];//
4、arrayofidletimesinthalf=INTERVAL/2;doubleradian=0.0;for(inti=0;i5、ime)<=busySpan[j]);Sleep(idleSpan[j]);j++;}return0;}代码清单1-5_PROCESSOR_POWER_INFORMATIONinfo;54CallNTPowerInformation(11,//queryprocessorpowerinformationNULL,//noinputbuffer0,//inputbuffersizeiszero&info,//outputbufferSizeof(info));//outbufsize__int64t_begin=GetCPUTickCou6、nt();//dosomething__int64t_end=GetCPUTickCount();doublemillisec=((double)t_end–(double)t_begin)/(double)info.CurrentMhz;代码清单1-6#defineHALF_BITS_LENGTH4//这个值是记忆存储单元长度的一半,在这道题里是4bit#defineFULLMASK255//这个数字表示一个全部bit的mask,在二进制表示中,它是11111111。#defineLMASK(FULLMASK<7、ENGTH)//这个宏表示左bits的mask,在二进制表示中,它是11110000。#defineRMASK(FULLMASK>>HALF_BITS_LENGTH)//这个数字表示右bits的mask,在二进制表示中,它表示00001111。#defineRSET(b,n)(b=((LMASK&b)^n))//这个宏,将b的右边设置成n#defineLSET(b,n)(b=((RMASK&b)^(n<8、边的值#defineLGET(b)((LMASK&b)>>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include
5、ime)<=busySpan[j]);Sleep(idleSpan[j]);j++;}return0;}代码清单1-5_PROCESSOR_POWER_INFORMATIONinfo;54CallNTPowerInformation(11,//queryprocessorpowerinformationNULL,//noinputbuffer0,//inputbuffersizeiszero&info,//outputbufferSizeof(info));//outbufsize__int64t_begin=GetCPUTickCou
6、nt();//dosomething__int64t_end=GetCPUTickCount();doublemillisec=((double)t_end–(double)t_begin)/(double)info.CurrentMhz;代码清单1-6#defineHALF_BITS_LENGTH4//这个值是记忆存储单元长度的一半,在这道题里是4bit#defineFULLMASK255//这个数字表示一个全部bit的mask,在二进制表示中,它是11111111。#defineLMASK(FULLMASK<7、ENGTH)//这个宏表示左bits的mask,在二进制表示中,它是11110000。#defineRMASK(FULLMASK>>HALF_BITS_LENGTH)//这个数字表示右bits的mask,在二进制表示中,它表示00001111。#defineRSET(b,n)(b=((LMASK&b)^n))//这个宏,将b的右边设置成n#defineLSET(b,n)(b=((RMASK&b)^(n<8、边的值#defineLGET(b)((LMASK&b)>>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include
7、ENGTH)//这个宏表示左bits的mask,在二进制表示中,它是11110000。#defineRMASK(FULLMASK>>HALF_BITS_LENGTH)//这个数字表示右bits的mask,在二进制表示中,它表示00001111。#defineRSET(b,n)(b=((LMASK&b)^n))//这个宏,将b的右边设置成n#defineLSET(b,n)(b=((RMASK&b)^(n<8、边的值#defineLGET(b)((LMASK&b)>>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include
8、边的值#defineLGET(b)((LMASK&b)>>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include
此文档下载收益归作者所有