windows獲取高精度時間

2021-09-06 08:44:56 字數 1633 閱讀 6754

如果當前系統中支援高解析度計數器,我們可以使用 queryperformancecounter 和 queryperformancefrequency 進行高解析度的計時。

queryperformancefrequency()

型別:win32api

原型:bool queryperformancefrequency(large_integer *lpfrequency);

作用:返回硬體支援的高精度計數器的頻率。

返回值:非零,硬體支援高精度計數器;零,硬體不支援,讀取失敗

函式queryperformancecounter用於得到高精度計時器的值(如果存在這樣的計時器)

原型:bool queryperformancecounter(large_integer *ipperformancecount);//引數指向計數器的值

引數: large_integer *ipproformancecount

為乙個指標變數用於函式傳值,即指向現時計數器的值.如果安裝的硬體不支援高精度計時器,該引數將返回0,

返回值:

如果安裝的硬體支援高精度計時器,函式將返回非0值.

如果安裝的硬體不支援高精度計時器,函式將返回0

乙個時間類的實現

//

------------------------------ 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;}

如果系統不支援高精度計時器,可以使用gettickcount(),精度是毫秒。還可以使用clock(),其精度也是毫秒。

高精度除法(高精度除以高精度)

先貼乙個簡單的高精度除以單精度的 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...