楼主:
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;