目标C的字符分配问题

时间:2011-07-21 07:06:17

标签: iphone objective-c ios4 encryption

我尝试将值分配给char

char Cipher1[16] = {55,149,31,253,212,158,217,64,226,62,149,241,255,147,115,155};

但在分配之后,将此值分配给Chiper1而不是精确值

  55 -107 31 -3 -44 -98 -39 64 -30 62 -107 -15 -1 -109 115 -101 

是对象c

中char的正确赋值

3 个答案:

答案 0 :(得分:3)

这只是有符号和无符号字节之间的区别...以无符号字符的形式打印它,你应该得到相同的结果。

注意:char ---是有符号的,所以值大于128需要8位才能保持 - 所有大于128的值都以负数显示(它指的是符号位。)

答案 1 :(得分:0)

不是char签名,因此在-128到+127的范围内,所以你的值被转换为有符号值?

如果你想要0到255范围内的值,你肯定想要unsigned char吗?

同意弗拉基米尔的意见,你如何贬低价值观,你确定这不是输出问题吗?

答案 2 :(得分:0)

您现在正在使用signed char。相反,切换到无符号:

unsigned char Cipher1[16] = {55,149,31,253,212,158,217,64,226,62,149,241,255,147,115,155}; 

这将为您提供正确的结果。