程序清單4.11_intconv.c程序_《C Primer Plus》P74
阿新 • • 發佈:2018-06-18
實踐 In 期望 2018年 turn 轉換 char* 控制 argc // intconv.cpp : 定義控制臺應用程序的入口點。
//
/* intconv.c -- 一些不匹配的整數轉換 */
/*
時間:2018年06月18日 00:27:35
代碼:程序清單4.11_intconv.c程序_《C Primer Plus》P74
目的:整數轉換不匹配的原因,唯有徹底弄清楚補碼才明了
*/
#include "stdafx.h"
#define PAGES 336
#define WORDS 65618
int _tmain(int argc, _TCHAR* argv[])
{
short num = PAGES;
short mnum = -PAGES;
printf("num as short and unsigned short: %hd %hu\n", num, num);
printf("-num as short and unsigned short: %hd %hu\n", mnum, mnum);
printf("num as int and char: %d %c\n", num, num);
printf("WORDS as int, short, and char: %d %hd %c\n",
WORDS, WORDS, WORDS);
getchar();
return 0;
}
/*
在VS2010中運行結果:
----------------------------------------------
num as short and unsigned short: 336 336
-num as short and unsigned short: -336 65200
num as int and char: 336 P
WORDS as int, short, and char: 65618 82 R
----------------------------------------------
翻譯如下:
數字為 short 和無符號 short:336 336
負數字為 short 和無符號 short:-336 65200
數字為 int和char:336 P
詞作為int,short和char:65618 82 R
----------------------------------------------
總結:
1>.不要期望 %u 轉換能把數字和符號分開;
2>.要細心匹配各種不同類型的數值;
3>.唯有在實踐中慢慢體會與積累經驗;
----------------------------------------------
*
程序清單4.11_intconv.c程序_《C Primer Plus》P74