如果當前系統中支援高解析度計數器,我們可以使用 queryperformancecounter 和 queryperformancefrequency 進行高解析度的計時。
queryperformancefrequency()
型別:win32api
原型:bool queryperformancefrequency(large_integer *lpfrequency);
作用:返回硬體支援的高精度計數器的頻率。
返回值:非零,硬體支援高精度計數器;零,硬體不支援,讀取失敗
函式queryperformancecounter用於得到高精度計時器的值(如果存在這樣的計時器)
原型:bool queryperformancecounter(large_integer *ipperformancecount);//引數指向計數器的值
引數: large_integer *ipproformancecount
為乙個指標變數用於函式傳值,即指向現時計數器的值.如果安裝的硬體不支援高精度計時器,該引數將返回0,
返回值:
如果安裝的硬體支援高精度計時器,函式將返回非0值.
如果安裝的硬體不支援高精度計時器,函式將返回0
乙個時間類的實現
//如果系統不支援高精度計時器,可以使用gettickcount(),精度是毫秒。還可以使用clock(),其精度也是毫秒。------------------------------ header file -----------------------
#pragma once#include
class
ctime;//
-------------------------------- ctime.cpp ------------------------------
#include "
ctime.h
"#include
uint64 ctime::m_frequency = 0
;ctime ctime::m_self;
ctime::ctime(
void
) m_frequency = fc.quadpart; //
計時器的頻率
}ctime::~ctime(void
)uint64 ctime::getmillis()
uint64 c =fc.quadpart;
uint64 s = (c) / (m_frequency / 1000
);
returns;}
uint64 ctime::getmicros()
uint64 c =fc.quadpart;
uint64 s = (c) / (m_frequency / 1000 / 1000
);
returns;}
uint64 ctime::getnanos()
uint64 c =fc.quadpart;
uint64 s = (c) / (m_frequency / 1000 / 1000 / 1000
);
return
s;}
高精度除法(高精度除以高精度)
先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...
高精度除高精度
演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...
高精度除以高精度
原 題 高精除以高精,求它們的商和餘數。演算法分析 高精除以高精是用減法模擬除法,對被除數的每一位都減去除數,一直減到當前位置的數字 包括前面的餘數 小於除數 由於每一位的數字小於10,所以對於每一位最多進行10次計算 代 碼 include include include using namesp...