牛骨文教育服务平台(让学习变的简单)
博文笔记

050.Hex2String 十六进制转字符串

创建时间:2015-07-18 投稿人: 浏览次数:842
---------------  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] = ""; // 添加字符串结束字符      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.与传入普通变量不同的是,传入数组变量作为参数的实质就是传入一个指针。   这个指针指向数组的首元素的地址。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。