【嵌入式 C】C语言中格式输出二进制的两种方法
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语言中格式输出二进制的两种方法相关推荐
- c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...
[判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。
[判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...
- c语言中字符串去掉逗号,JS四种方法去除字符串最后的逗号
window.οnlοad=function() { var obj = {name: "xxx", age: 30, sex: "female"};//定义一 ...
- linux中复制字符串出错,C语言实现字符串的复制的两种方法
本文将要为您介绍的是C语言实现字符串的复制的两种方法,具体操作方法: 利用数组实现 1 #include 2 #include 3 4 void copy_string(char str1[],cha ...
- Java中的string定义的两种方法和区别
java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...
- 二进制(二):十进制转二进制的两种方法
前一篇已经简单介绍了二进制,现在来介绍如何把我们常用的十进制数字转换成二进制.十进制转二进制有两种方法: 一.连除法(把十进制数字除以2,得到商和余数,再把商除2,直到除到0为止,然后按倒序把余数排列 ...
- 多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...
MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发 ...
- WPF中在XAML中实现数据类型转换的两种方法
WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...
- python怎么清屏_python实现清屏的方法 Python Shell中清屏一般有两种方法。
Python Shell 怎样清屏? Python Shell中清屏一般有两种方法. 奈何一个人随着年龄增长,梦想便不复轻盈:他开始用双手掂量生活,更看重果实而非花朵.--叶芝<凯尔特的搏暮&g ...
最新文章
- Unity提高工作效率的终极指南
- jquery的实时触发事件(textarea实时获取中文个数)
- 最优化评分法c语言,最优化方法及其实现(Optimization-Algorithm)C语言
- h5配合css和js如何自定义单选框
- html to txt研究
- CoderForces999D-Equalize the Remainders
- HackPorts – Mac OS X 渗透测试框架与工具
- python ssh登录交换机_python使用paramiko模块通过ssh2协议对交换机进行配置的方法...
- 系统学习机器学习之特征工程(三)--稀疏特征之FM算法
- linux截图工具shutter 下载,在Ubuntu 19.04系统中安装Shutter截图工具的方法,附删除的方法...
- 开发微信H5视频秀项目遇到的坑
- python 上传文件到服务器(模拟网页前端上传)
- Linux加入Windows域
- 第五届山东理工大学ACM网络编程擂台赛
- 从苏宁电器到卡巴斯基(第二部)第06篇:我在卡巴的日子 VI
- 盘点2014:10个词让你看懂今年的移动互联网
- SQL数据库无法附加
- 微信输入法,终于来了。。。
- 如何稳定的连接steam服务器,科技教程:怎么解决与Steam服务器连接时出现的问题...
- TF2.0 subclass存储及读取模型
热门文章
- matlab改主题的命令schemer
- WIN10家庭版局域网连接设置(含设置账号密码)
- 常用的OpenCV函数速查
- 【读书笔记】 - 《你只是看起来很努力》
- 查看redis的Value值大小
- maven dependency 警告:Overriding managed version XXX for XXX
- python网络数据采集 第二版_Python网络数据采集 (影印版)第2版
- 基于颜色的R2V软件快速矢量化
- 计算机中的标准差是哪个英语单词,标准差是什么意思
- unixbench跑服务器性能,UnixBench 5.1.3性能测试_IntelCPU_服务器评测与技术-中关村在线...