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