#include<stdio.h>
#include<bios.h>
#define lo(f) ((f)&0xff)
#define hi(f) (lo(f>>8))
int main(void)
{
int key;
do
{
 key=bioskey(0);
 printf("0x%02x 0x%02x %c\n",hi(key),lo(key),lo(key));//这条语句中0x%02x是什么意思??
}
while(key!=0x011b);
/*printf("hello world");*/
return 0;
}
%02X什么意思啊!
格式控制:     以十六进制输出,2为指定的输出字段的宽度.如果位数小于2,则左端补0
就是说hi(key)的返回值,将以十六进制,并且显示2位的方式显示。
例如:hi(key)==0x09
那么0x%02x 就显示为 0x09,如果你用0x%x 就显示为0x9
//   以1   6进制方式按字节显示数据
void   ShowHex(void   *   pv,int   size)
{
char   *   pc=new   char[100];   //   临时字符数组,获取整个数据的16进制表示
char   *   temppc=new   char[10];   //   临时字符数组,获取单个字节的16进制表示
if((pc!=NULL)&&(temppc!=NULL))
{
strcpy(pc, " ");   //清空
for(int   i=0;i <size;i++)   //   根据数据的字节长度来循环
{
sprintf(temppc, "%02X   ",((unsigned   char   *)pv)[i]);//问题所在
strcat(pc,temppc);
}
cout < <pc < <endl;//显示16进制方式的数据并回车
}
sprintf(temppc, "%02X   ",((unsigned   char   *)pv)[i]);//问题所在
-----> 这个是C语言的基本函数啊,就是一个字符串的输出函数,和printf的差别在于它输出定向到一个字符缓冲(temppc)。
在CB的HELP中,敲入sprintf,看到完整帮助
sprintf(temppc, "%02X   ",((unsigned   char   *)pv)[i]);
将pv当前字节按16进制显示到temppc。
%02X  与  %2X
If   width   is   prefixed   with   0,   zeros   are   added   until   the   minimum   width   is   reached.   If   0   and   –   appear,   the   0   is   ignored.   If   0   is   specified   with   an   integer   format   (i,   u,   x,   X,   o,   d)   the   0   is   ignored.

就是说一般情况下表示在左侧填充'0’,直到达到声明的长度。但是又用了'-’标志的,及转换i,   u,   x,   X,   o,   d这些数字时,'0’标志被忽略。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char data[6] = {0x01,0x26,0x0A,0x0B,0x21,0x23};
    char buffer[100];
    memset(buffer, 0, sizeof(buffer));
    sprintf(buffer, "%02X:%02X:%02X:%02X:%02X:%02X", data[0],data[1], data[2],data[3], data[4],data[5]);
    printf("转换后:%s\n", buffer);
    printf("转换后length:%d\n", strlen(buffer));
    system("pause");
    return 0;
}
显示 strlen(buffer) = 17 (2*6 + 5);

sprintf %02x相关推荐

  1. php unpack linux,PHP unpack()函数中断处理信息泄露漏洞

    发布日期:2010-05-31 更新日期:2010-06-28 受影响系统: PHP PHP <= 5.3.2 PHP PHP <= 5.2.13 描述: ---------------- ...

  2. PHP中用编码代码,编码对照表的使用(2)_php

    /** * 本程序用于从编码对照表装入简繁编码,利用序列化来缩短装入时间 * 同时提供两个繁简转换函数 * 使用方法: * 在需要的程序中加入 http://www.gaodaima.com/4561 ...

  3. varint算法——本质上是牺牲最高位作为标识数据结束位,达到变长编码,说白了就是贪心的分割位...

    varint算法,摘自:http://blog.csdn.net/liaoquesg/article/details/50897327 最近在看<大规模WEB服务开发技术>这本书中.书中提 ...

  4. pack()函数中类型对应的符号标记

    pack (PHP 4, PHP 5) pack - Pack data into binary string Report a bug 说明 string pack ( string $format ...

  5. php 检查图片重复度,php – 检测图片的“整体平均”颜色

    你可以使用PHP获得一个调色板数组,如下所示: function colorPalette($imageFile, $numColors, $granularity = 5) { $granulari ...

  6. qt开发环境 - 简易二进制文件打开,串口自发自收

    qt版本:5.9.1 win版本:10.1706 下载:https://download.csdn.net/download/zn2857/10194028 改自上篇文章的串口助手,加入linEdit ...

  7. php 动态设置utf8,PHP对GB编码动态转UTF-8几种方法评测

    以下为引用的内容: require_once (\"func_ip.php\"); function u2utf8($c) { $str = \"\"; if ...

  8. php中颜色的索引值,计算PHP中两种颜色之间的平均颜色,使用索引号作为参考值...

    我们假设为了讨论的目的,每个颜色都有一个"值".那么,你想要的就足够简单: $index = 0.2; $val1 = get_value_of_color($color1); $ ...

  9. php 随机颜色,php生成随机颜色的代码实例

    PHP生成随机颜色的代码实例: 方法一: function color_txt($str){ if ( is_array($str) ) { $str = $str[1]; } $len        ...

最新文章

  1. Python Excel操作模块XlsxWriter之插入图片worksheet.insert_image
  2. 根据不同的操作系统读取配置文件/java读取属性文件代码
  3. 关于c/c++/obj-c的混合使用 (2010-06-22 10:05:33)
  4. java登录界面命令_Java命令行界面(第7部分):JCommander
  5. Android listview item中使用TextWatcher
  6. Android studio安装过程中入的坑的记录与记录
  7. 软件测试 测试用例笔记
  8. 没有云服务器?内网穿透了解一下
  9. 小白学习一eNSP华为模拟器(5)利用三层交换机实现VLAN间路由
  10. CD Linux启动盘,CDlinux硬盘启动制作方法。CDlinux硬盘怎样启动制作?
  11. 入门OSPF就这一篇足够了
  12. 订单信息无法识别,建议联系卖家。 错误码:INVALID_PARAMETER
  13. 算法:Climbing Stairs(爬楼梯) 6种解法
  14. 双十一必备销售看板:附完整模板素材
  15. 特征提取 - 海森矩阵(Hessian Matrix)及一个用例(图像增强)
  16. 浅谈DNS域名解析的过程
  17. JN5169 NXP Zigbee 3.0开发环境搭建
  18. JavaCV - 图像锐化
  19. 计算机桌面结构,桌面主机的内部结构桌面主机的组成是什么[详细介绍]
  20. App在appstore下架的方法

热门文章

  1. linux服务器不允许下载文件,关于从Linux服务器下载Excel文件的问题
  2. TPA2080D1相关介绍
  3. 联想发布首款AI四摄手机S5 Pro 掀起偶像级美颜自拍普及风暴
  4. 一场走不进爱情的友情
  5. 美图php面试题目,美图面试经验
  6. 有没有软件可以测试高低音,高低音真能随意调?EQ均衡品质差异测试
  7. 一款不错的LaTeX作业封面模板(三)
  8. Result consisted of more than one row错误的修正
  9. 前端 polo-360
  10. oracle重做日志文件归档是什么意思?