為什么要使用輸出控制符:
-
我們知道在計算機中數據是以二進制的形式存儲在計算機中的,但是01組成的代碼既可以表示數據也可以表示指令。如果不用輸出控制符變成我們想要的樣子的話,很容易的造成誤解。
-
如果01組成的代碼表示的是數據的話,那么同樣的 01 代碼組合不同的輸出格式就會有不同的輸出結果。所以需要使用輸出控制符
常見的輸出控制符包含如下:
%d --------------- int
%ld --------------- long int
%c --------------- char
%f --------------- float
%lf --------------- double
%x(或者%x 后者%#X) ------------整型(長短都可以)(用是十六進制輸出)
%o ------------整型(長短都可以)(八進制輸出)
%s ------------字符串
代碼演示
/*
----------------2020/3/13 21:45---------------
目的: 探究非進制控制輸出符
*/
# include<stdio.h>
int main(void)
{
int i=10;
char a='a';
float b=2.123459789;
double c=3.123456789;
//%d 一般多用於int類型。表示用十進制進行輸出
printf("%d\n",i);
//%ld 表示long int 類型
printf("%d\n",i);
//%c 用於輸出字符串
printf("%c\n",a);
//%f 用於輸出單精度浮點數
printf("%f\n" ,b);
//%lf用於輸出雙精度浮點數
printf("%lf\n" ,c);
return 0;
}
/*
--------------------vc++6.0上運行的結果------------------
10
10
a
2.123460
3.123457
---------------------------------------------------------
心得:
我們可以看到浮點數最多輸出得是小數點后面六位,不論單精度還是雙精度都是一樣得。
超過了六位的浮點數從第七位四舍五入,無論第八位有多大,第七位后面的數已經與這個數無關了。只看第七位是否四舍五入
不足六位數的浮點數在后面補0
*/
進制的輸出控制符
- 代碼演示
/*
-----------------2020/3/13 22:35----------------
目的:
探究進制輸出符的控制
*/
# include<stdio.h>
int main(void)
{
int i=30;
//用八進制輸出
printf("%o\n",i); //輸入的是小寫的o
printf("%O\n",i); //輸入的大寫的O
printf("%0\n",i); //輸入的數字零
printf("%#o\n",i); //輸入的是井號加小寫字母o
printf("%#O\n",i);
printf("----------------\n");
//十六進制輸出
printf("%x\n",i); //輸入的是小寫x
printf("%X\n",i); //輸入的是大寫的X
printf("%#x\n",i); //輸入的是井號加小寫字母o
printf("%#X\n",i); //輸入的是井號加小寫字母o
return 0;
}
/*
---------vc++6.0中運行的結果--------------
36
O
036
O
----------------
1e
1E
0x1e
0X1E
------------------------------------------
心得:
在八進制中小寫得o輸出不帶符號得八進制數。大寫得O和數字零看起來差不多,但是輸入大寫得O出來得是一個零。而數字0出來的是空行
所以在八進制中只有小寫得o能夠輸出數據,#o能夠輸出帶符號得八進制數
在十六進制中大小寫得x都可以輸出數據。X輸出得超過10得大寫得字符。小寫得就是小寫的字符。#x帶有符號的十六進制數。
在十六進制中大小寫都可以輸出而八進制只有小寫可以輸出的原因可能是因為十六進制中超過的10的部分是字母表示的。可以用大小寫。而八進制都是數字無法用法大小寫區分
*/
}