討論串[問題] 面試考題 程式最佳化
共 10 篇文章
內容預覽:
除了溢位問題以外,可能還有以下幾個常見問題:. (1) 沒有人保證 unsigned (int) 寬度剛好是 32 位元,要玩弄位元請用 uint32_t.. C99 標準(草稿 n1256 版)只有說 UINT_MAX 至少是 65535 (2^16-1).. 目前流行的的編譯器+作業系統+處理器
(還有714個字)
內容預覽:
更快的做法:. #define MUL24(XX) (( (XX)<<4) + ( (XX)<<3) ). #define IS_NEGATIVE(XX) (((XX)&(0x80000000)) >> 31). #define IS_OVERFLOW(XX) (((XX)&(0xf0000000)
(還有344個字)
內容預覽:
vc2008吃不下 int[UINT_MAX]. 1.. static const unsigned short div24[USHRT_MAX] ={. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,. 1,1,1,1,1,1,1,1,1,1,1,
(還有329個字)
內容預覽:
先不談是不是真的有最佳化,你的改動甚至和原本的 code 的運作結果. 根本就連吻合也談不上:. 1) 本來的 code 是 a/24 <=b 的話會繼續向下跑,你改成必定 return。. 如果原本的 code 後面是這樣的,你應該會明白問題出在哪了:. if ( (a/24) > b ) ret
(還有181個字)