/*double 數轉 uint64_t 四捨五入法*/
/** vs 中線程安全函式 sprintf->sprintf_s
* strtok->strtok_s
* gcc 中線程安全函式 strtok->strtok_r
*/uint64_t doubletoull(double a)
; char *p = null,*pp = null;
uint64_t b = 0;
sprintf(strbuf, "%.1f", a);
p = strtok(strbuf, ".", &pp);
b = strtoull(p, null, 10);
p = strtok(null, "", &pp);
if(strtoull(p, null, 10) >= 5)
return b;
}/*獲取數值的位數*/
int32_t getnumbits(uint64_t num)
; return sprintf(atmp,"%llu",num);
}/*計算 val 的 n 次方*/
uint32_t calpower(uint32_t val, size_t n)
while (n--)
return tmp;
}/*計算 10 的次方*/
double calpoweroften(int64_t n)
}else if(n < 0)
}return tmp;
}/*8 位 bcd 資料轉換為 10 進製資料*/
void bcd8421_to_dec_uint8(uint8_t *pdata, size_t size)
if(size == 0)
for (uint32_t i = 0; i> 0x04) * 10 + tmp;
}}/*8 位 10 進製資料轉換為 bcd 資料*/
void dec_uint8_to_bcd8421(uint8_t *pdata,size_t size)
if(size == 0)
for (uint32_t i = 0; i < size; i++)
}/*資料進一法取整*/
uint32_t ceil(float val)
return (uint32_t)val;
}/*資料四捨五入取整*/
uint32_t roundingoff(float val)
return (uint32_t)val;
}/*統計字元個數(可防止溢位)*/
uint32_t charnumstatistics_s(const char *str,uint8_t size)
else
} return (en + ch);
}/*統計字元個數(不可防止溢位)*/
void charnumstatistics(const char *str,uint32_t *pen,uint32_t *pch)
else if(!(c & 0x80))
} *pen = en;
*pch = ch;
}
造輪子之我見
味,因為自己就是那一小撮喜歡造輪子的人!自己錯了,錯在哪呢?浪費時間?那麼很快的把事做完了,再做點啥呢!自己是個人英雄主義麼。想出頭麼,想要更多的公升職,加薪 麼,想要譁眾取寵麼!困惑,苦悶,壓力,壓抑,接踵而來。今天看了篇文章 似乎不光自己由此困惑,很多人或者說很多想要做輪子或者 正在造輪子的人 ...
談談自己造輪子
寫下這篇文章,主要是對我近段時間工作的反思。對於一些程式設計師來說,喜歡自己造輪子可算是乙個很平常的事情,我想可能有如下原因 我不覺得造輪子不好,曾今很長一段時間我都認為造輪子是體現自己能力很好的一種方式,但是現在越來越覺得,不要過分的去造輪子。昨天,我需要對接amazon s3的儲存,官方沒有go...
重複造輪子 kmq
第一章 kafka基礎概念 第二章 kafka集群部署實踐 第三章 重複造輪子 kmq 基於記憶體queue實現生產和消費api 1 建立記憶體blockingqueue,作為底層訊息儲存 2 定義topic,支援多個topic 3 定義producer,支援send訊息 4 定義consumer,...