C++中printf()函数的用法3

将argument以整型的方式打印到输出流时,可以有以下几种方式:有符号十进制、无符号十进制、无符号八进制和无符号十六进制。

1有符号十进制

可以将type设置为i或者d来将整型以有符号十进制的方式打印到输入流中。

int a = -10;

printf("%d\n", a);

printf("%i\n", a);

其中,%i是老式写法,而%d是新式写法,两者的作用相同。

2 无符号十进制

可以将type设置为u来将整型以无符号十进制的方式打印到输入流中。

int a = 10;

printf("%u\n", a);

3 无符号八进制

可以将type设置为o来将整型以无符号八进制的方式打印到输入流中。

printf("%o\n", a);

此时的输出为“12”,即10的八进制格式。

4 无符号十六进制

可以将type设置为x或者X来将整型以无符号十六进制的方式打印到输入流中。当是%x时,使用小写字母abcdef;当是%X时,使用大写字母ABCDEF。

int a = 10;

printf("%x\n", a);

printf("%X\n", a);

此时,输出的是“a”和“A”。

5 type与argument类型不符

当type指定的是无符号,而argument是有符号的整型时,例如

int a = -10;

printf("%u\n", a);

此时会把a当做无符号的值来处理。a的值是-10,其对应的二进制(10的补码加1)是1111 1111 1111 1111 1111 1111 1111 0110,将其看做无符号的数,其值为‭4294967286‬。

发布了314 篇原创文章 · 获赞 206 · 访问量 61万+

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/105561973