我有一个短变量,我想在iOS中将其转换为2个字节
short num = 10;
char *bytes;
现在我想将此num值转换为字节
请帮帮我
答案 0 :(得分:3)
可能是这样的 char * bytes = malloc(sizeof(char)* 2);
bytes[0] = (char)(num & 0xff);
bytes[1] = (char)((num >> 8) & 0xff);
编辑:在以下所有评论之后..
char * bytes = malloc(sizeof(char) * 3);
bytes[0] = (char)(num & 0xff);
bytes[1] = (char)((num >> 8) & 0xff);
bytes[2] = '\0' ; // null termination
printf("strlen %d", strlen(bytes));
printf("sizeof %d", sizeof(bytes));
现在你可以理解其中的差异......
答案 1 :(得分:1)
也许你可以这样做
char buf[2];
short num = 10;
sprintf(buf, "%d", num);
// buf[0] = '1'
// buf[1] = '0'
char c = buf[0];
约翰
答案 2 :(得分:1)
首先感谢 baliman ,经过一些更改后,它正在为我工作
NSString *myStr = @"2";
char buf[2];
sprintf(buf, "%d", [myStr integerValue]);
char c = buf[0];
答案 3 :(得分:0)
短和2字节是相同的,如果短是16位,所以你只需要输入任何你想要的东西..无论如何,如果你经常使用这个,你可以使用union:
union ShortByteContainer {
short shortValue;
char byteValue[2];
};
有了它,您可以从短转换到另一个转换:
ShortByteContainer value;
value.shortValue = 13;
char byteVal1 = value.byteValue[0];
char byteVal2 = value.byteValue[1];
value.byteValue[0] = 1;
value.byteValue[1] = 2;
short shortVal = value.shortValue;