欢迎来到天天文库
浏览记录
ID:23309440
大小:303.50 KB
页数:54页
时间:2018-11-06
《编程之美随书源代码-中文注释》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第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)<=busyTime);//idleloopSleep(id
2、leTime);}代码清单1-32.//C#codestaticvoidMakeUsage(floatlevel){PerformanceCounterp=newPerformanceCounter("Processor","%ProcessorTime","_Total");if(p==NULL){return}while(true){if(p.NextValue()>level)System.Threading.Thread.Sleep(10);}}代码清单1-4//C++codetomaketaskmanagergeneratesinegraph#include"Windows.
3、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];//arrayofidletimesinthalf=INTERVAL/2;doubleradian=0.0;for(inti=0;i4、ySpan[i]=(DWORD)(half+(sin(PI*radian)*half));idleSpan[i]=INTERVAL-busySpan[i];radian+=SPLIT;}DWORDstartTime=0;intj=0;while(true){j=j%COUNT;startTime=GetTickCount();while((GetTickCount()-startTime)<=busySpan[j]);Sleep(idleSpan[j]);j++;}return0;}代码清单1-5_PROCESSOR_POWER_INFORMATIONinfo;CallNTPowerI5、nformation(11,//queryprocessorpowerinformationNULL,//noinputbuffer0,//inputbuffersizeiszero&info,//outputbufferSizeof(info));//outbufsize__int64t_begin=GetCPUTickCount();//dosomething__int64t_end=GetCPUTickCount();doublemillisec=((double)t_end–(double)t_begin)/(double)info.CurrentMhz;代码清单1-6#def6、ineHALF_BITS_LENGTH4//这个值是记忆存储单元长度的一半,在这道题里是4bit#defineFULLMASK255//这个数字表示一个全部bit的mask,在二进制表示中,它是11111111。#defineLMASK(FULLMASK<>HALF_BITS_LENGTH)//这个数字表示右bits的mask,在二进制表示中,它表示00001111。#defineRSET(b,n)(b=((LMASK&b)^n))/7、/这个宏,将b的右边设置成n#defineLSET(b,n)(b=((RMASK&b)^(n<>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include#
4、ySpan[i]=(DWORD)(half+(sin(PI*radian)*half));idleSpan[i]=INTERVAL-busySpan[i];radian+=SPLIT;}DWORDstartTime=0;intj=0;while(true){j=j%COUNT;startTime=GetTickCount();while((GetTickCount()-startTime)<=busySpan[j]);Sleep(idleSpan[j]);j++;}return0;}代码清单1-5_PROCESSOR_POWER_INFORMATIONinfo;CallNTPowerI
5、nformation(11,//queryprocessorpowerinformationNULL,//noinputbuffer0,//inputbuffersizeiszero&info,//outputbufferSizeof(info));//outbufsize__int64t_begin=GetCPUTickCount();//dosomething__int64t_end=GetCPUTickCount();doublemillisec=((double)t_end–(double)t_begin)/(double)info.CurrentMhz;代码清单1-6#def
6、ineHALF_BITS_LENGTH4//这个值是记忆存储单元长度的一半,在这道题里是4bit#defineFULLMASK255//这个数字表示一个全部bit的mask,在二进制表示中,它是11111111。#defineLMASK(FULLMASK<>HALF_BITS_LENGTH)//这个数字表示右bits的mask,在二进制表示中,它表示00001111。#defineRSET(b,n)(b=((LMASK&b)^n))/
7、/这个宏,将b的右边设置成n#defineLSET(b,n)(b=((RMASK&b)^(n<>HALF_BITS_LENGTH)//这个宏得到b的左边的值#defineGRIDW3//这个数字表示将帅移动范围的行宽度。#include#
此文档下载收益归作者所有