Re: [問題] printf & 型態轉換

作者: drag (京都念慈庵,賈詡念費翔)   2016-02-19 16:49:28
: → vvrr: 1. int a 轉成 char b的時候,不論正負只留最後1個byte
: → vvrr: 2. char b傳進printf前會根據b此時代表數值轉成signed int
: → vvrr: 3. printf實際上印出來的都是int.有些只看到1byte的只是前面
: → vvrr: 都是0(而且我沒有叫printf印出來) 大概是這樣沒錯吧
學弟,
看到最後這樣推文, 有點擔心, 覺得也許你還沒想通
就當自己雞婆多說一些
本想回你私信,
但搞不好我下面講的東西有誤,還想請版上各位大大幫忙校正
就如各位大大的推文, 主要關鍵在
"2補數" 和 "sign extension"
(其實本想偷虧你: 猴喔喔~~~!!!邏設課本忘光了齁?我要回去告似老師~
後來發現只是誤會printf()而已)
※ 引述《vvrr (vvrr)》之銘言:
: 餵入的資料(Input):
: int a = 5000;
: char b = (char)a;
: printf("b = %x\n", b);
: 補充說明(Supplement):
:
: 嘗試了一些a的初始值和結果,有點不太明白為什麼會變成這樣,整理如下:
:
: int a = 5000;
作者: ss780217 (Wade)   2016-02-19 21:13:00
推推 很清楚
作者: overhead (overhead)   2016-02-20 01:14:00
超清楚的

Links booklink

Contact Us: admin [ a t ] ucptt.com