|
菜鸟拜求:如何将内容为”1B”的NSString数据,转换成0x1B,并赋值给unsigned char对象? 我建立一个UITextField对象,在里面输入16进制的数据”1B 76″. 既需要实现: 输出:unsigned char dest[2]; O(∩_∩)O哈哈~拜谢—– |
|
![]() 20分 |
一个char一个char的转,拆成子串,然后分别转成int类型
|
![]() 20分 |
dest[0] = 0x1B;
dest[1] = 0x76; 你是要在这里面保存成16进制? 这可以吗????? 至于输入的16进制的字符串,你可以自己写个算法来转换成10进制啊,这个不难,会点计算机基础的都能写.然后你就把转换出来的数值保存到数组里面.然后你要显示的时候再转换成十六进制就ok了啊 |
![]() 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;
}
|
![]() |
小鸟儿拜谢各位大侠。
|

