050.Hex2String 十六进制转字符串

本文介绍如何使用C语言将十六进制字符串转换为ASCII表对应的字符串,并提供了具体实现步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------  main.m  ---------------
把十六进制的字符串按ASCII表解码成对应的字符串。
#import <Foundation/Foundation.h>

NSString * hex2String(char hex[] , unsigned long len)
{
     char tmp[len/2 + 1];
     for (int i = 0 , j = 0; i < len; i+=2 , j++)
     {
         int shiBit = hex[i] >= 97 ? hex[i] - 87 :
             (hex[i] >= 65 ? hex[i] - 55 : hex[i] - 48);
         int geBit = hex[i + 1] >= 97 ? hex[i + 1] - 87 :
             (hex[i + 1] >= 65 ? hex[i + 1] - 55 : hex[i + 1] - 48);
         int intTmp = shiBit * 16 + geBit;
         tmp[j] = intTmp;
     }
      tmp[len/2] = '\0'; // 添加字符串结束字符
     return [NSString stringWithCString:tmp encoding: NSASCIIStringEncoding];
}
int main()
{
    char hex[] = "616162636464";
    NSLog(@"%@", hex2String(hex, strlen(hex)));
    char hex2[] = "6a6b6c6D6E6f70717273";
    NSLog(@"%@", hex2String(hex2, strlen(hex2)));
}

一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。

二、本节代码涉及到的知识点:
1.在上面的代码中,定义函数时,指定了函数的形参类型是数组,
  但并没有指定数组的长度。而是通过第二个参数来动态决定该数组的长度。
  这样就可以传入长度不等的数组了。
2.与传入普通变量不同的是,传入数组变量作为参数的实质就是传入一个指针。
  这个指针指向数组的首元素的地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值