[問題] 16進位轉成10進位,怎麼去判斷並顯示為負數???

看板C_and_CPP (C/C++)作者 (我好喜歡T9)時間14年前 (2010/12/26 14:39), 編輯推噓3(306)
留言9則, 6人參與, 最新討論串1/1
我是使用C語言... char a[]="FF77C8"; int b=strtol(a,NULL,16); printf("%d",b); 顯示出的結果為16777152 可是正確解答應為-64....... 請問我該怎麼樣才能正確的把16進位的負值轉成為10進位的負值呢? 小妹困惱了好久QQ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.207.240

12/26 14:41, , 1F
呃, 你的數字是 24-bit 的?
12/26 14:41, 1F

12/26 14:47, , 2F
我的基礎很爛...不太懂大大的意思...請問我該怎麼做呢?
12/26 14:47, 2F

12/26 15:19, , 3F
你那樣他會當成00FF77C8去轉 而且你打的16進位本來就不是-64
12/26 15:19, 3F

12/26 15:27, , 4F
所以要把FF77C8變成0XFF77C8嗎???><
12/26 15:27, 4F

12/26 18:23, , 5F
剛發現他轉不回來 http://codepad.org/stmnXTd0 原PO
12/26 18:23, 5F

12/26 18:24, , 6F
要不要自己寫一個轉換的函式? 其實也不會太難 @_@
12/26 18:24, 6F

12/26 20:10, , 7F
看了love大的結果才注意到XD 不過小弟也有1F L大同樣的
12/26 20:10, 7F

12/26 20:11, , 8F
問題, 要先了解原po希望讀入的string是幾bit整數@_@"
12/26 20:11, 8F

12/26 20:44, , 9F
先推關鍵字
12/26 20:44, 9F
文章代碼(AID): #1D5kCn6J (C_and_CPP)
文章代碼(AID): #1D5kCn6J (C_and_CPP)