输出控制符的详解
程序员文章站
2022-07-06 12:34:20
为什么要使用输出控制符: 我们知道在计算机中数据是以二进制的形式存储在计算机中的,但是01组成的代码既可以表示数据也可以表示指令。如果不用输出控制符变成我们想要的样子的话,很容易的造成误解。 如果01组成的代码表示的是数据的话,那么同样的 01 代码组合不同的输出格式就会有不同的输出结果。所以需要使 ......
为什么要使用输出控制符:
我们知道在计算机中数据是以二进制的形式存储在计算机中的,但是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的部分是字母表示的。可以用大小写。而八进制都是数字无法用法大小写区分 */ }