看板 C_and_CPP 關於我們 聯絡資訊
遇到了一個與自己直覺相異的問題 有一個12bit的signed int經過 filter後要轉回unsigned int 我的直覺是把signed int加上2048即可 但看到的資料好像不一定可以這樣做 想請問有什麼狀況是不能這樣加2048就轉回unsigned嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.75.63.71 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411452593.A.F45.html
PoorLoser: signed integer overflow causes undefined behavior? 09/23 15:11
johnjohnlin: signed -> unsigned 好像會 mod 那個 unsigned+1? 09/23 15:27
Killercat: 我記得是undefined behavior 不過每家行為都一樣 09/23 16:58
CindyLinz: 要看你怎麼寫耶.. 如果你是先轉型 unsigned 再加 09/23 17:37
CindyLinz: 那就不會 undefined behavior 了 09/23 17:37
CindyLinz: 而實際經驗的話.. 沒有用過12bits的int,所以沒有經驗XD 09/23 17:38
fatalcord: 我目前懷疑是要避免overflow,只是不知道該如何驗證 09/24 08:46
LPH66: 基本上要看那個 signed 是何種表示法; 二補數可以這麼做 09/24 20:17
LPH66: 一補數或 sign-magnitude 的話則不行 09/24 20:18