【c语言】进制之间的相互转换。十进制转换八进制、十六进制;十六进制转换八进制 灰太狼 2022-12-24 06:57 168阅读 0赞 **目录** (1)【未显示前导 0 或者0X】 (2)【显示前导 0 或者0X】:输出的时候添加\# (3)总结: (4)进制之间的转换: -------------------- **例子:十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X** ### **(1)【未显示前导 0 或者0X】** ### #include <stdio.h> int main(){ int i = 1234; printf("1234的八进制数:%o\n",i); printf("1234的十六进制数:%X\n",i); } 结果展示: ![20201127115037507.png][] ### **(2)【显示前导 0 或者0X】:输出的时候添加\#** ### #include <stdio.h> int main(){ int i = 1234; printf("1234的八进制数:%#o\n",i); printf("1234的十六进制数:%#X\n",i); } 结果展示: ![20201127115144248.png][] ### **(3)总结:** ### > %o 八进制不会显示前导0 > > %X 十六进制不会显示前导0X > > %\#o 显示八进制前面的前导 0 > > %\#X 显示十六进制前面的前导 0X ### **(4)进制之间的转换:** ### 十进制---------->八进制。%o (无前导0) %\#0 (有前导0) 十进制---------->十六进制。%X(无前导0X) %\#X(有前导0X) 十六进--------->十进制。 %d %md (m是所占的域宽) #include <stdio.h> int main(){ int a = 1234; int b = 0xABCDEF; printf("十进制---无前导--->八进制 %o\n",a); printf("十进制---前导--->八进制 %#o\n",a); printf("十进制---无前导--->十六进制 %X\n",a); printf("十进制---前导--->十六进制 %#X\n",a); printf("十六进制---无域宽-->十进制 %d\n",b); printf("十六进制---域宽为15-->十进制 %15d\n",b); } ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pc3NfbGlhbmdybQ_size_16_color_FFFFFF_t_70][] [20201127115037507.png]: /images/20221120/aa1261bba6b443a1a093d0fb20a86c58.png [20201127115144248.png]: /images/20221120/cec1949aa9f141ea878d562fa8a9ee47.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pc3NfbGlhbmdybQ_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20201127143820781.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01pc3NfbGlhbmdybQ==,size_16,color_FFFFFF,t_70
还没有评论,来说两句吧...