我有两个字符
例如:
但是这并不起作用:我得到了一个等于c2的
(但是:在我的真实应用程序中,
char
,我想按位将它们“拼接”在一起。例如:
char c1 = 11; // 0000 1011
char c2 = 5; // 0000 0101
short int si = stitch(c1, c2); // 0000 1011 0000 0101
所以,我最初尝试使用位运算符:
short int stitch(char c1, char c2)
{
return (c1 << 8) | c2;
}
但是这并不起作用:我得到了一个等于c2的
short
... (1)为什么?(但是:在我的真实应用程序中,
c1
和c2
都是负数...也许这是问题的一部分?)
所以,我的第二个解决方案是使用一个union
:
union stUnion
{
struct
{
char c1;
char c2;
}
short int si;
}
short int stitch(char c1, char c2)
{
stUnion u;
u.c1 = c1;
u.c2 = c2;
return u.si;
}
这个功能正如我所希望的那样...我想
(2) 最好/最快的方法是什么?
谢谢!