欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

要求使用 sprintf EN 转换并打印十六进制值(保留前导零)。

最编程 2024-06-21 09:50:37
...

使用

代码语言:javascript
复制
sprintf(reversed_src, "%04x", ( unsigned int )*dst);

注意,通常情况下,对于long类型的对象,表达式2 * sizeof( long ) (十六进制数字的数量)可以等于8或16。所以你需要像这样声明数组

代码语言:javascript
复制
char reversed_src[2 * sizeof( long ) + 1], reversed_dst[2 * sizeof( long ) + 2];

然后写下例如

代码语言:javascript
复制
sprintf(reversed_src, "%0*lx", 
        ( int )( 2 * sizeof( long ) ), ( unsigned long )*dst);

这是一个演示程序。

代码语言:javascript
复制
#include <stdio.h>

int main(void) 
{
    enum { N  = 2 * sizeof( long ) };
    char reversed_src [N + 1];

    long x = 0xABCDEF;

    sprintf( reversed_src, "%0*lX", N, ( unsigned long )x );

    puts( reversed_src );
   
    return 0;
}

程序输出为

代码语言:javascript
复制
0000000000ABCDEF

推荐阅读