[問題] signed to unsigned轉換

作者: fatalcord (QQ)   2014-09-23 14:09:50
遇到了一個與自己直覺相異的問題
有一個12bit的signed int經過 filter後要轉回unsigned int
我的直覺是把signed int加上2048即可
但看到的資料好像不一定可以這樣做
想請問有什麼狀況是不能這樣加2048就轉回unsigned嗎?
謝謝
作者: PoorLoser (廢文製造機)   2014-09-23 15:11:00
signed integer overflow causes undefined behavior?
作者: johnjohnlin (嗯?)   2014-09-23 15:27:00
signed -> unsigned 好像會 mod 那個 unsigned+1?
作者: Killercat (殺人貓™)   2014-09-23 16:58:00
我記得是undefined behavior 不過每家行為都一樣
作者: CindyLinz (Cindy Wang)   2014-09-23 17:37:00
要看你怎麼寫耶.. 如果你是先轉型 unsigned 再加那就不會 undefined behavior 了而實際經驗的話.. 沒有用過12bits的int,所以沒有經驗XD
作者: fatalcord (QQ)   2014-09-24 08:46:00
我目前懷疑是要避免overflow,只是不知道該如何驗證
作者: LPH66 (-6.2598534e+18f)   2014-09-24 20:17:00
基本上要看那個 signed 是何種表示法; 二補數可以這麼做一補數或 sign-magnitude 的話則不行

Links booklink

Contact Us: admin [ a t ] ucptt.com