首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

初学者拜求:怎么将内容为\"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象

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

菜鸟拜求:如何将内容为\"1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象?
菜鸟拜求:如何将内容为\"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哈哈~拜谢-----

[解决办法]
一个char一个char的转,拆成子串,然后分别转成int类型
[解决办法]
dest[0] = 0x1B;
dest[1] = 0x76;
你是要在这里面保存成16进制? 这可以吗?????
至于输入的16进制的字符串,你可以自己写个算法来转换成10进制啊,这个不难,会点计算机基础的都能写.然后你就把转换出来的数值保存到数组里面.然后你要显示的时候再转换成十六进制就ok了啊

[解决办法]

C/C++ code
    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;} 

热点排行