[問題] printf & 型態轉換
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
問題(Question):
printf的結果會根據型態的不同而改變
餵入的資料(Input):
int a = 5000;
char b = (char)a;
printf("b = %x\n", b);
預期的正確結果(Expected Output):
b = 88 (5000 = 0x1388)
錯誤結果(Wrong Output):
b = ffffff88
補充說明(Supplement):
嘗試了一些a的初始值和結果,有點不太明白為什麼會變成這樣,整理如下:
int a = 5000; --> b = ffffff88
int a = 0x1234; --> b = 34
int a = 50; --> b = 32 // 這個很正常
char a = 50; --> b = 32 // 這個很正常
char a = 0x7F; --> b = 7f
char a = 0x80; --> b = ffffff80
char a = 0x81; --> b = ffffff81
主要是前兩個,為什麼一個會印出ffffff,一個就不會?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.31.103
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1455519100.A.9CF.html
→
02/15 15:05, , 1F
02/15 15:05, 1F
→
02/15 15:17, , 2F
02/15 15:17, 2F
→
02/15 15:17, , 3F
02/15 15:17, 3F
→
02/15 15:20, , 4F
02/15 15:20, 4F
→
02/15 15:23, , 5F
02/15 15:23, 5F
※ 編輯: vvrr (60.250.31.103), 02/15/2016 15:37:04
→
02/15 15:37, , 6F
02/15 15:37, 6F
推
02/15 15:42, , 7F
02/15 15:42, 7F
→
02/15 15:43, , 8F
02/15 15:43, 8F
→
02/15 15:44, , 9F
02/15 15:44, 9F
※ 編輯: vvrr (60.250.31.103), 02/15/2016 15:46:25
推
02/15 15:45, , 10F
02/15 15:45, 10F
推
02/15 15:47, , 11F
02/15 15:47, 11F
→
02/15 15:47, , 12F
02/15 15:47, 12F
→
02/15 15:48, , 13F
02/15 15:48, 13F
※ 編輯: vvrr (60.250.31.103), 02/15/2016 15:49:09
→
02/15 15:49, , 14F
02/15 15:49, 14F
→
02/15 15:49, , 15F
02/15 15:49, 15F
→
02/15 15:50, , 16F
02/15 15:50, 16F
→
02/15 15:52, , 17F
02/15 15:52, 17F
→
02/15 15:52, , 18F
02/15 15:52, 18F
→
02/15 15:53, , 19F
02/15 15:53, 19F
推
02/15 16:04, , 20F
02/15 16:04, 20F
推
02/15 16:07, , 21F
02/15 16:07, 21F
→
02/15 16:11, , 22F
02/15 16:11, 22F
→
02/15 16:11, , 23F
02/15 16:11, 23F
→
02/15 16:13, , 24F
02/15 16:13, 24F
→
02/15 16:15, , 25F
02/15 16:15, 25F
→
02/15 16:15, , 26F
02/15 16:15, 26F
推
02/15 16:19, , 27F
02/15 16:19, 27F
→
02/15 16:21, , 28F
02/15 16:21, 28F
→
02/15 16:21, , 29F
02/15 16:21, 29F
→
02/15 16:22, , 30F
02/15 16:22, 30F
→
02/15 16:36, , 31F
02/15 16:36, 31F
→
02/15 16:36, , 32F
02/15 16:36, 32F
→
02/15 16:37, , 33F
02/15 16:37, 33F
推
02/15 16:40, , 34F
02/15 16:40, 34F
推
02/15 18:21, , 35F
02/15 18:21, 35F
推
02/15 22:26, , 36F
02/15 22:26, 36F
→
02/15 22:26, , 37F
02/15 22:26, 37F
→
02/15 22:27, , 38F
02/15 22:27, 38F
→
02/15 22:27, , 39F
02/15 22:27, 39F
→
02/15 22:28, , 40F
02/15 22:28, 40F
→
02/15 22:29, , 41F
02/15 22:29, 41F
→
02/15 22:29, , 42F
02/15 22:29, 42F
→
02/15 22:29, , 43F
02/15 22:29, 43F
→
02/15 22:30, , 44F
02/15 22:30, 44F
推
02/16 01:00, , 45F
02/16 01:00, 45F
→
02/16 01:02, , 46F
02/16 01:02, 46F
→
02/16 01:03, , 47F
02/16 01:03, 47F
→
02/16 01:04, , 48F
02/16 01:04, 48F
→
02/16 01:07, , 49F
02/16 01:07, 49F
→
02/16 01:10, , 50F
02/16 01:10, 50F
推
02/16 03:30, , 51F
02/16 03:30, 51F
→
02/16 03:31, , 52F
02/16 03:31, 52F
→
02/16 03:31, , 53F
02/16 03:31, 53F
→
02/16 03:31, , 54F
02/16 03:31, 54F
→
02/16 03:32, , 55F
02/16 03:32, 55F
→
02/16 03:32, , 56F
02/16 03:32, 56F
→
02/16 03:33, , 57F
02/16 03:33, 57F
→
02/16 03:34, , 58F
02/16 03:34, 58F
→
02/16 03:34, , 59F
02/16 03:34, 59F
→
02/16 10:58, , 60F
02/16 10:58, 60F
→
02/16 10:59, , 61F
02/16 10:59, 61F
→
02/16 11:00, , 62F
02/16 11:00, 62F
→
02/16 11:01, , 63F
02/16 11:01, 63F
→
02/16 11:02, , 64F
02/16 11:02, 64F
討論串 (同標題文章)