小白菜鸡提问!关于不同进制的输出结果搞不懂了🙏

img


第一个"%d"为什么对应的是16进制呢?
第二个14我也不知道咋来的
为什么第三个"%x"对应输出的是小写字母a不是数字呢,而且我也没算出来a是咋来的😭
我刚刚学C语言,很懵😭

字符是以ASCLL码形式存储的可以看看ASCLL码表 大写字母A码值是65而小写a是97二者相差32

以0x为前缀的表示串数字是16进制数,以0为前缀的表示是八进制数,前面没有0x和0的是十进制数
先把其都化为十进制数0x12就是18 ,12就是12
012就是10 第一个%d是以十进制形式输出结果就是18,第二关对应的%o以八进制形式输出对应的是12转换为八进制数为14 第三个%x以十六进制形式输出10转换为16进制数为A 最后结果为18 14 A

第一个%d是输出10进制,数字0x12是16进制数,转成10进制就是18;
第二个%o是输出8进制,数字12是10进制数,转成8进制就是14;
第三个%x是输出16进制,数字012是8进制数,转成16进制就是0xA