我的代码中有一个问题,请帮助我。这是我的代码。
printerView *pvvc=[[printerView alloc] init];
//[pvvc PrintImage:pvvc.printImageButton];
//[pvvc getCheckSum];
NSMutableArray *arrOrderVal=[pvvc getCheckSum];
unsigned char buffer2[24];
buffer2[0] = 0X55; buffer2[1]=0x66; buffer2[2]=0x77; buffer2[3]=0x88; buffer2[4]=0x44;//print command
buffer2[5] = 0X1D; buffer2[6]=0x6B; buffer2[7]=02; buffer2[8]=0x0D;
//<set order data
int arrStart=9;
for (int i=0; i<13; i++) {
NSString *val=[arrOrderVal objectAtIndex:i];
buffer2[arrStart+i]=([val intValue]+30);//[NSString stringWithFormat:@"0x%d",([val intValue]+30)];
}
//</set order data
/*buffer2[9] = 0X35; buffer2[10]=0x30; buffer2[11]=0x30; buffer2[12]=0x30; buffer2[13]=0x33;
buffer2[14] = 0X35; buffer2[15]=0x37; buffer2[16]=0x37; buffer2[17]=0x30; buffer2[18]=0x33;
buffer2[19] = 0X30; buffer2[20]=0x31; buffer2[21]=0x38; */
buffer2[22]=0x37; buffer2[23]=0x30;
for (int i=0; i<24; i++) {
NSLog(@"%c",buffer2[i]);
}我想为这个数组动态添加值。值的格式与我之前注释的格式相同。
but this printing it empty values. as below.
2011-09-16 11:58:37.610 SushiTeria[2024:700b] U
2011-09-16 11:58:38.993 SushiTeria[2024:700b] f
2011-09-16 11:58:39.534 SushiTeria[2024:700b] w
2011-09-16 11:58:39.927 SushiTeria[2024:700b] à
2011-09-16 11:58:40.321 SushiTeria[2024:700b] D
2011-09-16 11:58:40.704 SushiTeria[2024:700b]
2011-09-16 11:58:41.075 SushiTeria[2024:700b] k
2011-09-16 11:58:41.459 SushiTeria[2024:700b]
2011-09-16 11:58:41.863 SushiTeria[2024:700b]
2011-09-16 11:58:42.279 SushiTeria[2024:700b]
2011-09-16 11:58:42.695 SushiTeria[2024:700b]
2011-09-16 11:58:43.044 SushiTeria[2024:700b]
2011-09-16 11:58:43.438 SushiTeria[2024:700b]
2011-09-16 11:58:43.844 SushiTeria[2024:700b]
2011-09-16 11:58:45.351 SushiTeria[2024:700b]
2011-09-16 11:58:45.756 SushiTeria[2024:700b]
2011-09-16 11:58:46.229 SushiTeria[2024:700b]
2011-09-16 11:58:46.622 SushiTeria[2024:700b]
2011-09-16 11:58:47.039 SushiTeria[2024:700b]
2011-09-16 11:58:48.039 SushiTeria[2024:700b]
2011-09-16 11:58:48.782 SushiTeria[2024:700b]
2011-09-16 11:58:49.299 SushiTeria[2024:700b]
2011-09-16 11:58:49.862 SushiTeria[2024:700b] 7
2011-09-16 11:58:50.616 SushiTeria[2024:700b] 0提前谢谢。Shivam
发布于 2011-09-25 03:16:51
您可能希望打印出十进制值或十六进制值,而不是添加30,然后打印出字符。
NSLog(@"decimal: %d", buffer2[i]);或
NSLog(@"hex: %x", buffer2[i]);您还可以打印出字符本身以提供上下文:
NSLog(@"hex + char: %x (%c)", buffer2[i], buffer2[i]);发布于 2011-09-25 02:40:51
您正在添加30 (十进制),但您正在输出十六进制。所以我认为你是在看不见的人物的范围内。不是从65岁开始吗?
发布于 2011-09-25 03:04:09
假设您的arrOrderVal包含一个由一位十进制数字组成的字符串,并且您正在尝试将这些字符的ascii等价物插入到您的缓冲区中,那么正如@Cocoanetics所说的那样,您的问题在于您添加了一个十进制30。ASCII字符表中'0‘的开头是十六进制30 (十进制48)。因此,如果我理解您尝试做的事情是正确的,那么您应该改变:
buffer2[arrStart+i]=([val intValue]+30至
buffer2[arrStart+i]=([val intValue]+48https://stackoverflow.com/questions/7440983
复制相似问题