wannabe
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2004-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3292回复:16

哦哦,大家来b4微软了

楼主#
更多 发布于:2004-10-16 08:56
from nt4 src:
/*
 * Displays a byte in hexadecimal
 */
VOID
PrintHexChar( UCHAR c )
{
    PRINTF( "%c%c", "0123456789abcdef"[ (c>>4)&7 ], "0123456789abcdef"[ c&7 ] );
}

/*
 * Displays a buffer of data in hexadecimal
 */
VOID
PrintHexBuf( PUCHAR buf, ULONG cbuf )
{
    while( cbuf-- ) {
        PrintHexChar( *buf++ );
        PRINTF( " " );
    }
}
// by wannabe
coffee_qiqi
驱动牛犊
驱动牛犊
  • 注册日期2003-08-23
  • 最后登录2007-01-06
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-18 11:14
b4
cgdxxx
驱动牛犊
驱动牛犊
  • 注册日期2003-04-04
  • 最后登录2009-04-29
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-01 08:45
没发现吗?微软写的代码很精妙,考虑了很多东西,同时兼顾倒安腾系列的处理器。
satanli1982
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-05 11:00
没看出来^_^
Davyill
驱动牛犊
驱动牛犊
  • 注册日期2001-11-29
  • 最后登录2010-06-18
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-05 12:48
哈哈 :P
Let's Make Drivers Better
xx_focus
驱动中牛
驱动中牛
  • 注册日期2003-08-06
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-05 17:49
????????????
wanghao2004
驱动牛犊
驱动牛犊
  • 注册日期2005-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望70点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-06-12 16:18
"0123456789abcdef"[ (c>>4)&7 ]
头一次看到数组也可以这样访问,赞!
alwaysrun
驱动小牛
驱动小牛
  • 注册日期2006-06-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1059分
  • 威望752点
  • 贡献值1点
  • 好评度98点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-06-17 09:08
很有想法嘛呵呵
一颗平常的心!
sysXboy
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2010-02-07
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望131点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-06-29 23:02
其实还是不错的,o(∩_∩)o...
mopyman
驱动牛犊
驱动牛犊
  • 注册日期2004-08-01
  • 最后登录2010-04-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望36点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-06-30 21:34
写的中规中矩啊
xingfuyijia
驱动牛犊
驱动牛犊
  • 注册日期2009-07-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-07-08 09:24
哈哈 :P  
xingfuyijia
驱动牛犊
驱动牛犊
  • 注册日期2009-07-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-07-08 09:25
   
xingfuyijia
驱动牛犊
驱动牛犊
  • 注册日期2009-07-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-07-08 09:25
 
Chequer
驱动牛犊
驱动牛犊
  • 注册日期2008-10-07
  • 最后登录2011-08-26
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-07-08 10:58
写的好吗?没看出来。

如果这是一个被频繁调用的函数的话,这样的写法太有问题了!printf何许人也?如果你看过C runtime library的相关细节,你就会知道,这是个超级大的家伙,即使在优化模式下,它的实现(code段)也有超过2k!为了一个HEX的打印,就导入一个2k的大家伙,执行效率还极差,你们觉得值得吗?

ASCII2HEX的函数应该这样写:

VOID
HEX2STR(UCHAR c, char s[2])
{
    static char* hex = "0123456789ABCDEF";
    s[0] = hex[(c >> 4)];
    s[1] = hex[c & 0x0F];
}
noMIPS
驱动牛犊
驱动牛犊
  • 注册日期2009-07-09
  • 最后登录2009-07-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-07-09 14:32
PRINTF( "%c%c", "0123456789abcdef"[ (c>>4)&7 ], "0123456789abcdef"[ c&7 ] );

&7? 不是&0x0F吗?
alele805
驱动牛犊
驱动牛犊
  • 注册日期2009-07-27
  • 最后登录2009-08-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2009-08-03 09:18
不错啊,多节省代码啊!!!
qw232551857
驱动牛犊
驱动牛犊
  • 注册日期2008-05-03
  • 最后登录2020-08-20
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望131点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
16楼#
发布于:2009-08-30 12:24
代码写的相当简洁,很好,不愧是微软
游客

返回顶部