【发布时间】:2012-10-13 01:57:40
【问题描述】:
请看一下我的函数:
int getByte(int x, int n) {
int oneOnes = 255 << ( n << 3);
int compute = oneOnes & x;
//FIND A WAY TO RETURN CHAR (NOT INT)
char result = (compute >> (n << 3));
return result;
}
在评论之前一切都很好。也就是说,我从一个整数x 开始,我只想取某个小节(由n 指定)。所以我所做的就是把除了我想保持为零的 8 位之外的所有东西都做完。例如,如果输入是:
1001011 10011011 00101011 01001011
我只想保留第 3 组位(从右数),那么结果将是:
00000000 10011011 00000000 00000000
所以我成功地做到了这一点。问题是,我需要只返回我想要的位(裁剪零,作为char)。尽管创建了 char result 并返回它,但返回的仍然是 32 位值。
有什么帮助吗?谢谢!
明确一点:对于00000000 10011011 00000000 00000000,我希望只返回10011011。
谢谢!
【问题讨论】: