首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问

2012-04-19 
请教!写一函数,将一个n位二进制数中的奇数位提取出来,从左往右,是1,3,5,7……n-1思路是有了,但是很麻烦.先

请教!
写一函数,将一个n位二进制数中的奇数位提取出来,
从左往右,是1,3,5,7……n-1;

思路是有了,但是很麻烦.先得计算屏幕码!再进行&运算;如果n是8,16,32,64。。。。。。的话,那么就得每次计算屏幕码!有什么好的方法计算屏幕码吗?

[解决办法]
int src, dst;
src = 11;
dst = 0;
for(i=0; i <(((n))); i++)
{
if ((i%2) == 0) continue;

dst = dst | ((src & (1 < <i)) > > (i/2) )
}

你改改应该可以


[解决办法]
int main()
{
string strbin;
cout < < "please input the binary num : ";
cin > > strbin;
unsigned int tmp = 0;

vector <bool> bitvec;
for (string::const_iterator cit = strbin.begin(); cit != strbin.end(); ++cit)
{
if ((*cit) == '0 ')tmp = 0;
elsetmp = 1;
bitvec.push_back(tmp);
}

for (unsigned int i = 0; i < bitvec.size(); ++i)
{
if (i % 2 == 0)
{
cout < < "the " < < i+1 < < "position is : " < < (unsigned int)(bitvec[i]) < < endl;
}
}

return 0;
}
[解决办法]
int i, n;
char tmp[32]={0};
itoa(i, tmp, 2); //将数据转化为2进制串

然后,
使用n计算数组下标吧······
[解决办法]
楼上说的对,但是怎么做才能构造出一个偶数位为0,奇数位为1的数,
想了半天没想想来,郁闷...
==============
int mask=0, i;
for(i=0; i <16; i++){mask < <= 2; mask |= 1;}

热点排行
Bad Request.