我尝试将值分配给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的正确赋值答案 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};
这将为您提供正确的结果。