`
隐形的翅膀
  • 浏览: 493986 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

char 型 字符串转换为 16进制字符串

 
阅读更多
原理
1. 因为一个字符是由两个十六进制数(包含0)来表示的,所以新字符串的长度是原来的2背
2. 取得字符串中的一个字符
3. 首先右移动四维,取得左边的高四位,再得到16进制数
4. 字符原始值与0xf做与运算,取得低四位,再得到16进制数

#define MAX_PRINT_STRING_LEN 1024
typedef unsigned char uint8_t;

uint8_t nibble_to_hex_char(uint8_t nibble) {
  char buf[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
		  '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
  return buf[nibble & 0xF];
}



char * octet_string_hex_string(const void *str, int length) {
  const uint8_t *s = str;
  int i;

  length *= 2;

  if (length > MAX_PRINT_STRING_LEN)
    length = MAX_PRINT_STRING_LEN-1;
  
  for (i=0; i < length; i+=2) {
    bit_string[i]   = nibble_to_hex_char(*s >> 4);
    bit_string[i+1] = nibble_to_hex_char(*s++ & 0xF);
  }
  bit_string[i] = 0; 
  return bit_string;
}

分享到:
评论

相关推荐

    vc 16进制字符串转换为10进制的整数

    本文将详细讲解如何通过VC++的MFC库实现16进制字符串到10进制整数的转换。 首先,我们需要理解MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,它基于面向对象的编程思想,用于简化Windows应用程序的...

    javascript将16进制的字符串转换为10进制整数hex.docx

    根据给定文件的信息,本文将深入探讨如何在JavaScript中实现16进制字符串到10进制整数的转换,并附带介绍与之相关的其他进制间的转换方法以及字符与ASCII码之间的转换。 ### 一、JavaScript中16进制字符串到10进制...

    字符串转换为16进制char数组

    ### 字符串转换为16进制char数组 在计算机编程中,经常需要对数据进行各种格式转换,以便于处理或存储。其中一个常见的任务就是将普通的字符串转换为16进制表示形式。本文将详细介绍如何实现这一转换过程,并提供一...

    C++实现十六进制字符串转换为十进制整数的方法

    本文实例讲述了C++实现十六进制字符串转换为十进制整数的方法。分享给大家供大家参考。具体实现方法如下: /* * 将十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值 */ #include #include...

    字符型转换成16进制

    总之,字符型转换成16进制在VB编程中主要通过获取字符的ASCII或Unicode值,然后将这些数值转换为16进制字符串来实现。理解不同编码方式和VB提供的函数是解决这类问题的关键。在处理大量数据时,记得合理使用循环结构...

    android字符串和16进制转换

    在这里,`String.format()`和`BigInteger`用于将字符串转换为16进制,而`Base64.getDecoder().decode()`则用于将16进制字符串解码回原始的字节数组,再转化为字符串。 在实际应用中,你可能还会遇到其他复杂情况,...

    java 字符串转16进制Ascii

    在这个方法中,我们遍历输入字符串中的每个字符,将其转换为对应的ASCII整数值,然后使用`Integer.toHexString()`方法将该整数转换为16进制字符串。最后,我们将结果拼接到一个`StringBuilder`对象中,以空格分隔...

    十六进制与字符串转换

    - 使用`strtol()`:可以将字符串转换为长整型数值,配合`base`参数(设为16)实现从十六进制字符串到整数的转换。 - 自定义函数:可以编写自定义函数,通过遍历字符串并逐字符转换来完成字符串到十六进制数值的...

    QT 收到下位机16进制数转换字符串显示

    3. **转换为字符串**:将得到的十进制数值转换为16进制字符串。可以使用`QString::number()`方法,传入基数16(`16`)作为参数,将数值转换为16进制格式的字符串。 4. **显示在QLineEdit**:最后,使用QLineEdit的`...

    字符串转16进制字节

    反之,如果我们有一个16进制字节序列,想要将其还原为字符串,我们需要先将16进制字符串解析为字节,然后再解码成字符串。在Python中,这可以通过`unhexlify`和`decode`函数完成: ```python hex_str = "48656c6c6...

    javascript实现的字符串与十六进制表示字符串相互转换方法

    本文实例讲述了javascript实现的字符串与十六进制表示字符串相互转换方法。分享给大家供大家参考。具体如下: 之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6...

    字符串转16进制码

    本篇文章将深入探讨如何将字符串转换为16进制码,以及这种转换在实际应用中的作用。 首先,我们需要了解字符串与16进制之间的关系。每个字符在计算机内部都有其对应的ASCII码或Unicode码,这些码通常是十进制数值。...

    java实现字符转换成十六进制的ASCII码

    在这个例子中,我们遍历输入字符串中的每一个字符,将字符转换为其对应的ASCII码整数,然后使用`Integer.toHexString()`方法将ASCII码转换为16进制字符串。最后,我们将结果打印出来。 递归在本问题中可能是指将较...

    c++ 字符串字符转16进制

    总结一下,C++中将字符串字符转换为16进制的关键步骤包括: 1. 获取字符的ASCII码。 2. 使用`std::hex`、`std::uppercase`等函数设置输出格式。 3. 输出16进制数值。 这个过程可以应用于各种场景,比如日志记录、...

    MFC/VC++字符串与十六进制码之间互相转化

    关于字符串与十六进制码之间的转化,网上到是有不少理论方法,但是可用的没多少,专门写一个demo的更是没有。所以我自己写了一个实例(PS:用VC++6.0写的)上传,以便于遇到这个问题的人能更快的解决这个问题。

    Linux下C语言将字符串格式(char*)或char[]的MAC地址转换为十六进制数组

    Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组,代码简洁可直接使用

    pb字符串转十六进制及各进制之间转换源码

    PowerBuilder中的`Hex()`函数可以把整数值转换为十六进制字符串。如果我们要对字符串的每个字符分别转换,需要先将字符串转换成字节序列,然后逐个应用`Hex()`函数。例如: ```pb string strInput = "HelloWorld...

    c# 字符串转 32位 16进制

    2. **整数转16进制**:得到整数值后,我们将其转换为16进制字符串。C#提供了`ToString("X")`或`ToString("x")`方法,其中"X"表示大写的16进制,"x"表示小写的16进制。例如,`intValue.ToString("x4")`会返回一个4位...

    stm32十六进制字符串转十进制数值代码

    在本主题中,我们将深入探讨如何在STM32上将十六进制字符串转换为十进制数值。这个过程在处理传感器数据、内存地址、配置参数等场景时尤为常见。 首先,理解十六进制与十进制的概念至关重要。十六进制(Hexadecimal...

    字符串转十进制或16进制.pdf

    函数 `voidHexStrToByte(const char* source, unsigned char* dest, int sourceLen)` 的作用是将输入的十六进制字符串转换为字节流。这里的输入字符串是由十六进制字符组成的,输出是一个字节数组。在转换过程中,每...

Global site tag (gtag.js) - Google Analytics