C/C++ printf 输入16进制文本数据 多出许多ffffff的问题
问题描述:在编程过程中遇见一需求,需要从一文件中读取16进制格式的数据(格式如下图1所示),存储在内存中(char buf [MAX_SIZE])。然而,在测试读取的数据时,用printf("%02x",buf);输出数据时,出现了一个怪异的问题:凡是每个字节的高4位的值大于8,这个字节输出值前面就会唐突的冒充多个ffffff(结果见图2)。
图1 输入文件中的数据格式
图2 输出数据格式
对比图1 与图2 可以发现,针对每个字节,凡是高4位值大于8的,前面都会多出数个f.
我的输出代码如下:
int rsize;char buf[MAX_SIZE]; //问题的始作俑者*****rsize = fread(buf,sizeof(char),filesize,fp);if (rsize < 0){printf("Failed to read file .\n");}buf[rsize] = '\0';int i ;for ( i = 0; i < rsize; ++i){if ((i%16) == 0 ){printf("\n");}printf("%02x ",buf[i]);}
造成这种显现的原因是什么呢?use printf to print character string in hex format, distorted results 这里有讨论,归根芥蒂,就是printf("%02x",buf);输出时,溢出了。如果将存放数据的buf改为,unsigned char buf[MAX_SIZE)问题就能解决。
C/C++ printf 输入16进制文本数据 多出许多ffffff的问题相关推荐
- 用bat脚本写一个输入16进制转ascii码的代码
以下是一个使用 BAT 脚本实现 16 进制转 ASCII 码的代码示例: @echo off set /p hex=请输入16进制字符串: for /l %%i in (0,1,%hex:~0,-2 ...
- 16进制文本转二进制文件
16进制文本流转二进制文件(wireshark copy as Hex Stream的格式), 先上操作 xxd -r -p input.txt output.bin 参数解释 -r 逆向操作: 把x ...
- ASCII字符和16进制字节数据互转
接着上次写的一个字符转换.这次是互转,更便于理解. 1.CharToHex() //功能描述:把ASCII字符转换为16进制 将两个ASCII字符转化为单个字节进行显示,即两个字节转化为一个字节.如' ...
- printf输出16进制数
// 把网卡MAC地址格式化成常用的16进制形式,如0010-A4E4-5802 printf( "The Ethernet Number[%d] is: %02X%02X- ...
- hexde php_怎样在PHP中把16进制HEX数据转换为2进制数据呢?
展开全部 十六进制62616964757a686964616fe78988e69d8331333337623531转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制 ...
- python socket发送16进制数据_python socket以16进制的数据进行传递与解析
参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...
- 使用栈将用户输入的十进制数转换为其指定的进制(2进制、8进制、16进制)数据
进制转换的核心模块 当e>9时,e+55输出A~F字符 void conversion( SeqStack* s, int n ,int m) {int e;while (n){Push_Seq ...
- c语言16进制转换成文本显示,文本如何转换成16进制字节集数据
.版本 2 .子程序 取十进制, 整数型, , 将非十进制的标准格式文本转换成十进制整数值 .参数 欲转换的值, 文本型, , 欲转换的值,文本型! .参数 数值类型, 整数型, 可空, 0,#十六进 ...
- java 输入16进制_尝试使用十六进制输入来使用小端和大端
我试图用这两个原型编写C函数: int extract_little (char* str, int ofset, int n); int extract_big(char* str, int ofs ...
最新文章
- 练习用基础SQL语句
- 报告老板,微服务高可用神器已祭出,您花巨资营销的高流量来了没?
- checksum table 【转】
- 数据结构-单链表实现
- 【原】Redis事务管理
- laravel 如何 new php 类,PHP实例:laravel通过创建自定义artisan make命令来新建类文件详解...
- 知识图谱入门2-2:用户输入->知识库的查询语句
- 妙用VM的“远程显示”功能
- 30.Linux/Unix 系统编程手册(上) -- 线程:线程同步
- [原]Greenplum failed segment的恢复方法
- PMP考试必备基础知识
- 工资软件测试白盒测试报告,白盒测试测试报告模板.doc
- 浅析RTB和RTA(一)
- UE4 虚幻 常用的流程控制蓝图节点介绍
- 如何进行计算机系统安装教程,电脑怎么重装系统:系统安装教程
- debug基本命令及全称
- Beyond Compare 的开源替代工具meld
- 微信小程序、app集成微信支付
- 数据科学学习之探索性数据分析(EDA)
- vanish(squid) + HAProxy + nginx + memcached(redis)
热门文章
- 剖析Mozilla代码之七武器
- 【从0到1搭建LoRa物联网】2、终端设备开发方式
- Python 函数 | sorted 函数详解
- fitbit手表中文说明书_入侵Fitbit-为Twitter DM模拟寻呼机!
- 筛选英语高于计算机成,计算机应用基础--excel操作题2
- h5开启摄像头拍照+腾讯云接口人脸验证
- 基于单片机的CO浓度检测及报警系统设计(电路+程序流程)
- C#如何实现多窗口切换
- DNF60版本阿里云服务器+本地客服端教程①服务端搭建
- ClassNotFoundException: org.codehaus.plexus.logging.LoggerManager