050.Hex2String 十六进制转字符串
来源:互联网 发布:福州seo技巧培训 编辑:程序博客网 时间:2024/06/14 01:30
--------------- 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.与传入普通变量不同的是,传入数组变量作为参数的实质就是传入一个指针。
这个指针指向数组的首元素的地址。
0 0
- 050.Hex2String 十六进制转字符串
- 050.Hex2String 十六进制转字符串
- 字符串转十六进制 十六进制转字符串
- 十六进制字符串转整形
- Delphi 字符串转十六进制
- 十六进制字符串转Float
- 字符串转十六进制
- 字节转十六进制字符串
- 十六进制转字符串
- 十六进制字符串转十进制
- 十六进制字符串转ascii
- 十六进制转字符串、数值
- 字节转十六进制字符串
- 十六进制、字符串互转
- 十六进制字符串 转 二进制
- 字符串转十六进制
- 十六进制字符串转中文
- 十六进制转字符串
- JAVA EE架构师 需要具备的知识
- IM相关梳理
- UITableView详解
- Flume Avro Source 远程连接拒绝解决方法
- JS中 event属性方法总结
- 050.Hex2String 十六进制转字符串
- 文件加载和保存
- 图片上传4-bug修复
- 049.Array Arg 数组作为函数的参数
- Inotify测试(1):PyInotify、Thread测试
- Javascript 中数字的部分知识总结:
- pugi的使用
- Leetcode -- N-Queens II
- MySQL:You can’t specify target table ‘A’ for update in FROM clause