/*為時間定義*/
#define february 2
#define startoftime 1970
#define secday 86400l
#define secyr (secday * 365)
static int month_days[12] = ;
#define leapyear(year) ((year) % 4 == 0 && \
((year) % 100 != 0 || (year) % 400 == 0))
#define days_in_year(a) (leapyear(a) ? 366 : 365)
#define days_in_month(a) (month_days[(a) - 1])
/*日期資料結構*/
typedef struct
date_time;
/*計算soc*/
void tm_time_to_soc( date_time* pdttmrslt, uint32 *pu32soc)
if (leapyear(pdttmrslt->unyear))
days_in_month(february) = 29;
for (i = 1; iucmonth; i++)
ulrslt += days_in_month(i);
days_in_month(february) = 28;
ulrslt += pdttmrslt->ucdate- 1;
ulrslt = ulrslt * secday;
ulrslt += pdttmrslt->uchour*3600+pdttmrslt->ucminute*60+pdttmrslt->ucsec;
*pu32soc = ulrslt;
return ;
}改進點:
該方法通過將年每次相加,可以提供統一陣列來提供,這樣只需要一次訪問就可以,大大提高訪問效率,減少記憶體訪問次數。
基於matlab的隨機取樣計算法
對於線性規劃而言,有著成熟且有效的方法,而對於非線性整數規劃而言,沒有通解,儘管限制變數為整數而增加了難度,然而整數解為有限個,於是可以用列舉法求解方案。當然在乙個自變數維度很大和取值範圍很寬的情況下,企圖用窮舉法計算最優值是不現實的,但是根據概率理論可知,完全可以得出乙份滿意解。下面是matlab...
納秒與微秒的計算
秒的換算 ms 毫秒 s 微秒 ns 納秒 ps 皮秒 皮秒皮秒,符號ps 英語 picosecond 1皮秒等於一萬億分之一秒 10 12秒 1,000 皮秒 1納秒 1,000,000 皮秒 1微秒 1,000,000,000 皮秒 1毫秒 1,000,000,000,000 皮秒 1秒 納秒納...
基於Siddon演算法的CT正投影計算
ct技術在醫學診斷 工業無損檢測 安檢及地質勘測等方面發揮著重要的作用。ct技術的數理基礎是radon變換,在實際的ct系統中,radon正變換稱為投影資料的採集,radon逆變換稱為切片影象重建。ct投影 在優化radon變換的投影成像過程,測試radon逆變換的ct重建演算法等方面具有十分重要的...