当前位置: 首页 > news >正文

22. c语言怎么打印2进制、8进制、10进制、16进制数?

在 C 语言中,打印不同进制的数字格式可以使用不同的格式化字符串。以下是如何打印二进制八进制十六进制数值的方法:

1. 打印二进制

C 语言的 printf 函数没有内置直接打印二进制数的格式化符号,需要自定义函数来实现二进制打印。

示例代码:
#include <stdio.h>// 自定义函数,打印整数的二进制表示,跳过前导0
void print_binary(int num) {int size = sizeof(num) * 8;  // 获取整数类型的总位数int started = 0;  // 标记是否已经遇到第一个1printf("0b");for (int i = size - 1; i >= 0; i--) {int bit = (num >> i) & 1;  // 通过位移提取每一位if (bit == 1) {started = 1;  // 遇到第一个1时,标记开始打印}if (started) {    // 只在遇到第一个1后开始打印printf("%d", bit);}}if (!started) {  // 如果没有遇到1,说明是0printf("0");}printf("\n");  // 打印完后换行
}int main() {int x = 10;  // 10的二进制表示是1010printf("Binary of %d: ", x); //输出:Binary of 10: 0b1010print_binary(x);  // 打印二进制x = 0;  // 0的二进制表示是0printf("Binary of %d: ", x);/输出:Binary of 0: 0b0print_binary(x);return 0;
}
输出:
Binary of 10: 0b1010
Binary of 0: 0b0

2. 打印八进制

C 语言中,printf 函数的格式化符 %o 用于打印八进制数。

示例代码:
#include <stdio.h>int main() {int x = 10;  // 10的八进制是 12printf("Octal: %o\n", x);  // 打印八进制return 0;
}
输出:
Octal: 12

3. 打印十进制

C 语言中,printf 函数的格式化符 %d%i 用于打印十进制数:

示例代码:
#include <stdio.h>int main() {int x = 255;  // 255的十制是255printf("%i\n", x);  // 输出:255printf("%d\n", x);  // 输出:255return 0;
}
输出:
255
255

4. 打印十六进制

C 语言中,printf 函数的格式化符 %x%X 用于打印十六进制数:

  • %x:以小写字母打印(a, b, c, d, e, f)。
  • %X:以大写字母打印(A, B, C, D, E, F)。
示例代码:
#include <stdio.h>int main() {int x = 255;  // 255的十六进制是FFprintf("Hexadecimal (lowercase): %x\n", x);  // 小写printf("Hexadecimal (uppercase): %X\n", x);  // 大写return 0;
}
输出:
Hexadecimal (lowercase): ff
Hexadecimal (uppercase): FF

总结:

  • 二进制:通过自定义函数打印,C 语言没有内置的二进制格式化符。
  • 八进制:使用 %o 格式化符。
  • 十进制:使用 %d%i格式化符。
  • 十六进制:使用 %x(小写)或 %X(大写)格式化符。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Python的机器学习系列(25):使用PyTorch处理数据集
  • Unity版本升级2022 Gradle 升级7.x版本调整
  • JVM面试(五)垃圾回收机制和算法
  • opencv之阈值处理
  • 7种常见排序
  • 基于Spring的规则引擎EasyRule应用
  • jupyter 笔记本中如何判定bash块是否执行完毕
  • 【人工智能】Transformers之Pipeline(十四):问答(question-answering)
  • 【linux002】目录操作命令篇 - ls 命令
  • BF算法Java
  • HarmonyOs
  • 山 寨 币
  • 虚拟化技术实现;容器和虚拟化;一种软件实现各类厂商多种型号算力资源池化和虚拟化的;
  • STL简介、什么是STL、STL的六大组件、STL缺陷等的介绍
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Docker 笔记(2):Dockerfile
  • go语言学习初探(一)
  • javascript面向对象之创建对象
  • js中的正则表达式入门
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • npx命令介绍
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • spring-boot List转Page
  • spring学习第二天
  • TypeScript实现数据结构(一)栈,队列,链表
  • 爱情 北京女病人
  • 测试开发系类之接口自动化测试
  • 第十八天-企业应用架构模式-基本模式
  • 关于Java中分层中遇到的一些问题
  • 关于使用markdown的方法(引自CSDN教程)
  • 排序算法学习笔记
  • 深入 Nginx 之配置篇
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 实习面试笔记
  • 手机端车牌号码键盘的vue组件
  • 阿里云ACE认证学习知识点梳理
  • ​iOS安全加固方法及实现
  • #mysql 8.0 踩坑日记
  • #单片机(TB6600驱动42步进电机)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #图像处理
  • (arch)linux 转换文件编码格式
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (黑马C++)L06 重载与继承
  • (六)c52学习之旅-独立按键
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (十五)Flask覆写wsgi_app函数实现自定义中间件