簡體   English   中英

將具有十六進制值的char轉換為String

[英]Convert char with hex value to String

如果我有以下角色:

wchar_t c = '\x0A'

有什么簡單的方法可以將其轉換為:

wchar_t dst[] ==> "0A"

基本上,c的十六進制值變為字符串值。

c的整數值為0x0A (以10為底的10)。 您可以使用sprintf將其格式化為十六進制:

wchar_t c = '\x0A';
int c_val = c;
char string[3];

sprintf( string, "%.2X", c_val );

請注意,不需要中間c_val變量,僅為了說明而添加

或者您可以手動執行以下操作:

int c_low = c & 0x0F;
int c_high = ( c & 0xF0 ) >> 4;

...translate c_low and c_high to its textual representation...

一個簡單的十六進制可以很容易地寫出來。 這將目標字符串作為輸入參數:

unsigned int hexify(const wchar_t * src, char * dst, unsigned int dstlen)
{
  static const char alphabet[] = "0123456789ABCDEF";

  unsigned int i = 0;
  while (*src && 2*i + 1 < dstlen)
  {
    dst[2*i]   = alphabet[*src / 16];
    dst[2*i+1] = alphabet[*src % 16];
    ++src;
    ++i;
  }
  dst[2*i] = 0;
  return i;
}

用法:

char s[100];
hexify(some_wstr, s, 100);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM