[爆卦]unsigned int負數是什麼?優點缺點精華區懶人包

為什麼這篇unsigned int負數鄉民發文收入到精華區:因為在unsigned int負數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者DRLai (蘇打)看板C_and_CPP標題[問題] signed char 使用時機時間Th...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC


額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
N/A

問題(Question):
想請教關於 signed char 以及 unsigned char 使用時機
google 了一下,似乎有寫到 signed / unsigned char 差在數值範圍
(signed char = -128~127, unsigned char = 0~255)

不太瞭解何時會需要使用到負數的 char
能否請版友舉個例子呢?
負數的 char 是否有特別的意義?

另外有聽說 char 等同於 unsigned char,這樣說法對嗎?


感謝

餵入的資料(Input):
N/A

預期的正確結果(Expected Output):
N/A

錯誤結果(Wrong Output):
N/A

程式碼(Code):(請善用置底文網頁, 記得排版)
N/A

補充說明(Supplement):
N/A

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.171.20.220
※ 編輯: DRLai 來自: 1.171.20.220 (08/29 19:31)
azureblaze:char是signed 還是unsigned視編譯器而定,標準沒規定 08/29 19:45
azureblaze:gcc和msvc預設都是signed的樣子 08/29 19:46
azureblaze:負數char就用在需要範圍是 -128~127的時候 08/29 19:49
azureblaze:char的用途不是只有字元而已 08/29 19:50
DRLai:可以把他想成是節省記憶體的方式嗎?short=2bytes char=1byte 08/29 19:57
cortex1234:signed char 和 unsigned char 轉型成 int 時就不同了 08/29 20:03
cortex1234:你可以把它理解成 int8_t 和 uint8_t 08/29 20:04
xvid:其實就在大小之分 如果你的數值在-128~127也可以用s char 08/29 20:38
loveme00835:用型態描述值域。有的人數值只有真/偽也在用int,只 08/29 20:52
loveme00835:有0~10也在用int,那種 code 看到要吐血 08/29 20:52
DRLai:瞭解了~ 感謝m(_ _)m 08/29 22:48
MOONRAKER:用int也沒有什麼錯啊,以前有人的經驗談說他的同事會寫 08/30 00:01
MOONRAKER:這種code: char i; for (i=0; i<1500; i++) { ... } 08/30 00:02
MOONRAKER:不管是太爛或疏忽(這個例子是太爛),用int至少避免這 08/30 00:03
MOONRAKER:種蠢bug發生 08/30 00:03
caras:unsigned int i; for (i=1500; i>0; i--) {...} 比較機車 08/30 00:03
MOONRAKER:反過來講也有人把一堆值加一加當作檔名,結果超過2**31 08/30 00:05
MOONRAKER:系統跑一段時間以後發現新檔案會蓋掉舊的,居然還沒人 08/30 00:05
caras:問他為什麼用 unsigned 他說 i 是物件 count , 絕對是正整數 08/30 00:05
MOONRAKER:知道為什麼… 08/30 00:05
caras:我寫錯了, 上面的 for 的判斷條件是 i>=0 08/30 00:06
Feis:caras: 那代表他沒了解 i 真正的意涵不是 count 08/30 00:07
caras:我沒辦法講到他懂,只好規定他for裡面只能用signed int... 08/30 00:10
loveme00835:typedef 是你的好朋友 08/30 00:14
MOONRAKER:我就想 i > 0 好像很好啊…我還特別打開vmware寫一下 :P 08/30 00:16
BlazarArc:for 的寫法問題吧 如果 i 真的是物件 count uint還好吧 08/30 00:30
caras:也是要腦筋連打三個死結才有辦法寫出這個for loop 08/30 01:02
caras:倒著搜索、用uint、index從0開始本身都沒什麼不對 08/30 01:03
Favonia:int 沒有什麼錯啊。用 char 又不一定比較快。int 理論上要 08/30 22:18
Favonia:「最自然」的那個整數型態。char 搞不好更慢。 08/30 22:18
fireslayer:char說不定真的還比較慢 如果用CA的觀點來看的話 08/31 00:56
MOONRAKER:最自然是不是說等於目前架構下的暫存器寬度這樣最自然:P 08/31 02:13

你可能也想看看

搜尋相關網站