进制与输出格式

二进制 B 八进制 O 十进制 D 十六进制 X
各个进制之间的转换就不多说了。

#include <stdio.h>
int main(){

    int i=-858993460, j=0x1c;

    printf("十进制i=%d j=%d\n",i,j);
    printf("八进制i=%o j=%o\n",i,j);
    printf("十六进制i=%x j=%x\n",i,j);
    printf("十六进制i=%X j=%X\n",i,j);

  //return i;  //这个return有和没有都能运行成功,这与Java有别
}

运行结果
可以看出,%x 和 %X 的区别就在于输出时的大小写(16进制时)。总结这些输出格式:
%d 有符号10进制整数
%i 有符号10进制整数
%o 无符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/f 浮点数
%E/e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串

现在用个例子来重点看%g和%G

#include <stdio.h>
int main(){

    double d = 12.3450,dd = 123456.7890,ddd = 0.0000123;
    char m = '%';

    printf("以%cf数输出:d=%f \tdd=%f\tddd=%f\n",m,d,dd,ddd);
    printf("以%ce数输出:d=%e \tdd=%e\tddd=%e\n",m,d,dd,ddd);
    printf("以%cg数输出:d=%g \t\tdd=%g\t\tddd=%g\n",m,d,dd,ddd);
    printf("以%cG数输出:d=%G \t\tdd=%G\t\tddd=%G\n",m,d,dd,ddd);
}

这里写图片描述

《C Primer Plus》(5th)中是这样描述的:
%g: 根据数值不同自动选择 %f 或 %e ,%e 格式在指数小于-4或者大于等于精度时使用。
%G :(基本上同上)
《C程序设计》(谭浩强 4th)上是这样描述的:
g格式符。用来输出浮点数,系统自动选f格式或e格式输出,选择其中长度较短的格式,不输出无意义的0

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值