如何获取 char 的十六进制值的二进制表示

发布于 2024-09-15 03:38:47 字数 114 浏览 8 评论 0原文

给定一个字符,如何将该字符转换为两位数字符,即二进制表示的十六进制值?

比如给定一个char,它有一个二进制表示,就是一个字节,比如01010100,就是0x54.....我需要54的char数组。

Given a char, how to convert this char to a two digit char, which is the hex value of the binary presentation?

For example, given a char, it has a binary presentation, which is one byte, for example, 01010100, which is 0x54.....I need the char array of 54.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

罪#恶を代价 2024-09-22 03:38:48

使用 snprintf() 的以下代码应该可以工作:

#include <stdio.h>
#include <string.h>

int main()
{
  char myChar = 'A'; // A = 0x41 = 65
  char myHex[3];
  snprintf(myHex, 2 "%02x", myChar);

  // Print the contents of myHex
  printf("myHex = %s\n", myHex);
}

snprintf() 是一个与 printf() 类似的函数,只不过它填充了一个最多包含 N 个字符的 char 数组。 snprintf() 的语法是:

int snprintf(char *str, size_t size, const char *format, ...)

其中 str 是要“冲刺”的字符串,size 是要写入的最大字符数(在我们的例子中为 2),其余的与正常情况一样printf()

The following code, using snprintf() should work:

#include <stdio.h>
#include <string.h>

int main()
{
  char myChar = 'A'; // A = 0x41 = 65
  char myHex[3];
  snprintf(myHex, 2 "%02x", myChar);

  // Print the contents of myHex
  printf("myHex = %s\n", myHex);
}

snprintf() is a function that works like printf(), except that it fills a char array with maximum N characters. The syntax of snprintf() is:

int snprintf(char *str, size_t size, const char *format, ...)

Where str is the string to "sprint" to, size is the maximum number of characters to write (in our case, 2), and the rest is like the normal printf()

纸伞微斜 2024-09-22 03:38:47

实际上它会是:

char c = 84;
char result[3];
sprintf(result,"%02x",c);

Actually it would be:

char c = 84;
char result[3];
sprintf(result,"%02x",c);
放飞的风筝 2024-09-22 03:38:47

这一切都非常容易阅读:-)

#define H(x) '0' + (x) + ((x)>9) * 7
char c = 84;
char result[3] = { H(c>>4), H(c&15) };

This is all far to easy readable :-)

#define H(x) '0' + (x) + ((x)>9) * 7
char c = 84;
char result[3] = { H(c>>4), H(c&15) };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文