printf二进制数据
来源:互联网 发布:天才小熊猫 知乎 编辑:程序博客网 时间:2024/05/18 03:47
基于之前这篇文章的代码改进了下:http://blog.csdn.net/xzongyuan/article/details/28889063
之前打印的数字没有补0。我打印了内存信息,结果是这样的,不能对齐
为了对齐,要按字节长度打印,不足部分补0,而不是空格。本来想用printf打印字符串时,补0,但是打印%s时,不提供补0功能,所以我写了supplement_zero函数。
测试结果如下:
修改后,打印出来的数据就好看了
下面是测试代码,供参考
有时候,会打印出乱码,可能是把字符串的"\0"打印出来了,可以把printf限制为只打8个字符:printf("%.8s",buffer);
#include <stdio.h>#include "string.h"void decToBin(int num,char *buffer);void supplement_zero(char *buffer);void reOrder(char *buffer);void printf_binary_byte(int num);int main(){ int decimalNum; int base=2; printf("Enter number in decimal:"); scanf("%d",&decimalNum); // printf("Decimal%d:",decimalNum); printf("binary format is : "); printf_binary_byte(decimalNum); printf("\n"); return 0;}void decToBin(int num, char *buffer){if(num>0){decToBin(num/2,buffer+1);*buffer = (char)(num%2+48);}}void reOrder(char *buffer){int i;char temp[8]={0};for(i=0;i<4;i++){temp[7-i]=*(buffer+i);*(buffer+i)=*(buffer+7-i);*(buffer+7-i)=temp[7-i];}}void supplement_zero(char *buffer){int i;int len = (int)strlen(buffer);//add '0' to buffer's blank datafor(i=len;i<8;i++){*(buffer+i) = '0';}}void printf_binary_byte(int num){int i;char buffer[8]={0};decToBin(num,buffer);supplement_zero(buffer);reOrder(buffer);printf("%8s",buffer);}
0 0
- printf打印二进制数据
- printf二进制数据
- printf二进制输出
- printf二进制输出
- printf输出二进制
- printf函数打印二进制
- 二进制数据
- 二进制数据,二进制文件,二进制对象
- 利用printf打印彩色数据
- printf输出string类型数据
- 处理二进制数据
- 读写二进制字段数据
- 操作二进制数据
- 二进制数据读取
- C#二进制输出数据
- 二进制数据十六进制显示
- VB二进制存储数据
- python处理二进制数据
- CSS浮动
- 小白自学Android路之 http协议
- Android 动态创建Android控件、绑定事件处理的新方法
- timetellyou 当我在荒废时间的时候有多少人在拼命
- Android’s HTTP Clients
- printf二进制数据
- 在使用SQL server High Availability 的SharePoint 2013 Farm环境中使用Import-SPMetadataWebServicePartitionData
- X264编码h264
- facebook的thriff 基于rpc的远程调用实现
- 南京林业大学“未来之星”第六届程序设计大赛(决赛)试题E 参考代码
- 怎么恢复手机错乱丢失的电话号码呢
- apache安全配置
- js刷新页面
- ECMA RegExp类型