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