1.前言

在我们日常的编程中,有时候需要格式化输出一个整形数据的二进制,但是在我们C语言中只有

输出十进制:%d

输出十六进制:%x

输出单个字符:%c

输出字符串:%s

输出变量所在的地址:%p

而并没有这种二进制对应的格式,所以需要我们手动来实现。

2.源码实现

本篇博客给大家介绍两种方法:

1.通过库函数itoa,需要包含头文件:#include <stdlib.h>;

2.通过十进制转成二进制的常用方法——短除法;为方便大家使用,将两种方法都封装成了函数,源码如下:

#include <stdio.h>
#include <stdlib.h>#define uint32 unsigned int
#define uint8 unsigned charvoid FuncOutputBin(uint32 value)
{char string[33];   //形参类型uint32最大为32位,因此我这里定义了大小为33的字符串数组存放itoa(value, string, 2);  printf("库函数得到的二进制为:%s\r\n",string);
}//严格按照短除法的思想得到二进制
void ShortDivOutputBin(uint32 input)
{uint8 temp[33] = {0};  int i = 0;printf("短除法得到的二进制为:");while(input){temp[i] = input % 2; //取余数存放到数组中,此为得到的二进制数input = (uint32)input / 2;  //短除,while中判断是否除尽i++;  //存储了一个二进制数,自加存储下一个}for(i--; i>=0; i--)  //由于最后一次input为0无效,i还是自加了,因此最后一次自加的值是无用的,所以先自减,然后将余数从后往前读取{printf("%d",temp[i]);}printf("\r\n");
}void main(void)
{uint32 input = 0;printf("请输入一个需要转化为2进制的整形数据:");scanf("%d", &input); FuncOutputBin(input);ShortDivOutputBin(input);
}

itoa函数原型:char *itoa( int value, char *string, int radix)

功能:将整形数据value转化成需要的进制radix,然后将之以字符串的形式存放在string中;

返回值:转化成对应进制后的字符串的地址,也可以不使用返回值;

它的三个参数依次为:

value:需要转化的整形数据;

string:转化成对应进制后字符串的地址;

radix :需要转化成的进制(我这里需要转化为2进制,所以填2);

3.结果展示

(有图有真相咯~)

放在最后,喜欢作者的欢迎关注我们的公众号

"脑补空间

会为大家推送更多推文~

【嵌入式 C】C语言中格式输出二进制的两种方法相关推荐

  1. c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...

    [判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...

  2. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  3. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  4. c语言中字符串去掉逗号,JS四种方法去除字符串最后的逗号

    window.οnlοad=function() { var obj = {name: "xxx", age: 30, sex: "female"};//定义一 ...

  5. linux中复制字符串出错,C语言实现字符串的复制的两种方法

    本文将要为您介绍的是C语言实现字符串的复制的两种方法,具体操作方法: 利用数组实现 1 #include 2 #include 3 4 void copy_string(char str1[],cha ...

  6. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  7. 二进制(二):十进制转二进制的两种方法

    前一篇已经简单介绍了二进制,现在来介绍如何把我们常用的十进制数字转换成二进制.十进制转二进制有两种方法: 一.连除法(把十进制数字除以2,得到商和余数,再把商除2,直到除到0为止,然后按倒序把余数排列 ...

  8. 多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...

    MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发 ...

  9. WPF中在XAML中实现数据类型转换的两种方法

    WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...

  10. python怎么清屏_python实现清屏的方法 Python Shell中清屏一般有两种方法。

    Python Shell 怎样清屏? Python Shell中清屏一般有两种方法. 奈何一个人随着年龄增长,梦想便不复轻盈:他开始用双手掂量生活,更看重果实而非花朵.--叶芝<凯尔特的搏暮&g ...

最新文章

  1. Unity提高工作效率的终极指南
  2. jquery的实时触发事件(textarea实时获取中文个数)
  3. 最优化评分法c语言,最优化方法及其实现(Optimization-Algorithm)C语言
  4. h5配合css和js如何自定义单选框
  5. html to txt研究
  6. CoderForces999D-Equalize the Remainders
  7. HackPorts – Mac OS X 渗透测试框架与工具
  8. python ssh登录交换机_python使用paramiko模块通过ssh2协议对交换机进行配置的方法...
  9. 系统学习机器学习之特征工程(三)--稀疏特征之FM算法
  10. linux截图工具shutter 下载,在Ubuntu 19.04系统中安装Shutter截图工具的方法,附删除的方法...
  11. 开发微信H5视频秀项目遇到的坑
  12. python 上传文件到服务器(模拟网页前端上传)
  13. Linux加入Windows域
  14. 第五届山东理工大学ACM网络编程擂台赛
  15. 从苏宁电器到卡巴斯基(第二部)第06篇:我在卡巴的日子 VI
  16. 盘点2014:10个词让你看懂今年的移动互联网
  17. SQL数据库无法附加
  18. 微信输入法,终于来了。。。
  19. 如何稳定的连接steam服务器,科技教程:怎么解决与Steam服务器连接时出现的问题...
  20. TF2.0 subclass存储及读取模型

热门文章

  1. matlab改主题的命令schemer
  2. WIN10家庭版局域网连接设置(含设置账号密码)
  3. 常用的OpenCV函数速查
  4. 【读书笔记】 - 《你只是看起来很努力》
  5. 查看redis的Value值大小
  6. maven dependency 警告:Overriding managed version XXX for XXX
  7. python网络数据采集 第二版_Python网络数据采集 (影印版)第2版
  8. 基于颜色的R2V软件快速矢量化
  9. 计算机中的标准差是哪个英语单词,标准差是什么意思
  10. unixbench跑服务器性能,UnixBench 5.1.3性能测试_IntelCPU_服务器评测与技术-中关村在线...