%a.bf的含义
%f是输出float(单精度浮点型)型变量,%m.nf中m代表输出数长,n代表小数点后的数长,即保留n位小数。
如果小数点后的数大于n,例如12.4567按照%5.2f输出得12.46(四舍五入),如果总位数大于m(小数只到两位),按照实际位数输出,例如111.4567按%5.2f输出,111.46(总数长6)。(注意小数点也算一位数字,占据一个数长)
如果实际位数小于m,则要补齐空格,例如1.23按照%5.2f输出,_1.23(_表示空格)(四位数长加空格一共五位)再来讨论小数小于n的情况,小数小于n空格补齐,例如23.1按照%5.2f输出,得到23.1_(_表示空格)。
综上,m多了不限制小数点前,n多了四舍五入,mn少了空格补足。
‘’(单引号)例如‘C’、‘\040’(八进制表示字符形式)——通常属于char类型——%c 浮点数一般默认是double类型,如果有例如以6.0f的形式出现的表示float类型——%e(double)、%f(float) 0X3(十六进制)——八进制和十六进制通常优先选择unsigned int类型——%#o(八进制)、%#x(十六进制) 6L(6的长整型long)——long——%ld 0x5.b6p12(浮点数的p记数法)——float——%a 2.9e05l——long double——%le 因为C语言在limit.h和float.h头文件里预先预定了常见数据类型的限制,所以可以利用来观察整数上溢、浮点数上溢和浮点数下溢的情况。
#include <stdio.h> #include <limit.h> #include <float.h> int big_int=2147483647; float big_float=3.4e38; float small_float=10.0\3; printf("The big int data is %d\n",big_int+1); /*越界,结果为-2147483648*/ printf("The big float data is %f\n",big_float*10); /*越界,输出inf*/ printf("The small float data is %f\n",small_float); /*打印3.333333精度缺失*/ printf("The MAX int data is %d\n",INT_MAX); /*打印2147483647*/ printf("The MAX float data is %f\n,FLT_MAX); /*打印340282346638528859811704183484516925440.0000*/ return 0;
进制的转换
1.0B或0b——表示二进制的前缀 例如:0B10101010111 或者 0b10101010111
2.0O或0表示八进制的前缀
3.0x是16进制的前缀,H是16进制的后缀
都是表示十六进制数,意义上没有什么区别,完全相等。至于什么时候用0x,什么时候用H,
这取决于你在什么环境下使用,如果在C/C++/C#,必须用0x来表示。
在C/C#语言中是不能用H的.