如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?

iOS 码拜 9年前 (2015-05-04) 595次浏览 0个评论
 

菜鸟拜求:如何将内容为”1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?

我建立一个UITextField对象,在里面输入16进制的数据”1B 76″.
想要将输入的16进制数读取出来,保存成unsigned char类型。

既需要实现:
输入:uiTextField.text = “1B 76”;

输出:unsigned char dest[2];
dest[0] = 0x1B;
dest[1] = 0x76;

O(∩_∩)O哈哈~拜谢—– 

如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
20分
一个char一个char的转,拆成子串,然后分别转成int类型
如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
20分
dest[0] = 0x1B;
dest[1] = 0x76;
你是要在这里面保存成16进制?   这可以吗?????
至于输入的16进制的字符串,你可以自己写个算法来转换成10进制啊,这个不难,会点计算机基础的都能写.然后你就把转换出来的数值保存到数组里面.然后你要显示的时候再转换成十六进制就ok了啊
如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
60分
    NSString * textString = @"1B762b76";
    NSLog(@"%@",textString);
    
    int len = textString.length;
    int i = 0;
    unsigned char * dest = (unsigned char*)malloc(len);
    memset(dest, 0, len);
    NSRange range;
    range.length = 2;
    unsigned char * destTemp = dest;
    while (i<len)
    {
        range.location = i;
        *destTemp++ = (char)zh((char*)[[textString substringWithRange:range] UTF8String]);
        i += 2;
    }
    NSLog(@"%s", dest);
    free(dest);


// 16进制字符串转换为10进制整数
int zh(char str[])
{
    int i,n;
    int value = 0;
    int len =strlen(str);
    for( i=0; i<len;i++)
    {
        if(str[i]>=""A""&&str[i]<=""F"")
            n=str[i]-""A""+10;
        else if(str[i]>=""a""&&str[i]<=""f"")
            n=str[i]-""a""+10;
        else n=str[i]-""0"";
        value=value*16+n;
    }
    NSLog(@"%d",value);
    return value;
}

如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
小鸟儿拜谢各位大侠。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何将内容为"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!