| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 809 人关注过本帖
标题:求教一个数字问题(c编程)
取消只看楼主 加入收藏
nicezl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-6
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
求教一个数字问题(c编程)
数组中有8个8位的数,把每个数的最后一位取出,组成一个新的数据,(如a[0]的最后一位是新数中b[0]的最后一位,a[1]的最后一位是b[0]的倒数第二位......)如此之后得到8个新的数。

请看3楼解释。

请问有没有效率比较高的方法?

[ 本帖最后由 nicezl 于 2010-4-6 13:41 编辑 ]
搜索更多相关主题的帖子: 数字 
2010-04-06 11:34
nicezl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-6
收藏
得分:0 
我在重新解释一遍吧,假设a[0] = 0x82,a[1] = 0x46,a[2] = 0x60,a[3] = 0xE3,a[4] = 0x82,a[5] = 0xAA,a[6] = 0x19,a[7] = 0x68。那么可以得到如下表格,现在我想通过C编程得到b[0]--b[7].
  a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
  0    0    0    1    0    0    1    0            b[0]
  1    1    0    1    1    1    0    0            b[1]
  0    1    0    0    0    0    0    0            b[2]
  0    0    0    0    0    1    1    1            b[3]
  0    0    1    0    0    0    1    0            b[4]
  0    1    1    1    0    1    0    1            b[5]
  0    0    0    1    0    0    0    1            b[6]
  1    0    0    1    1    1    0    0            b[7]
变换前,低位在上面,高位在下面,变换后高位在左边,低位在右边。

[ 本帖最后由 nicezl 于 2010-4-6 13:38 编辑 ]
2010-04-06 12:32
nicezl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-6
收藏
得分:0 
回复 5楼 xiaoxinwan
A0,B0之类的都是一个数中的某一位,不是一个8位数。
2010-04-06 13:19
nicezl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-6
收藏
得分:0 
回复 7楼 ldg628
好像不行诶,我仿真出来得到到数据全部都是0
2010-04-06 14:23
nicezl
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-4-6
收藏
得分:0 
回复 11楼 ldg628
b[i] |= ((a[j]&bit(i))>>i)<<(7-j);
改成b[i] |= ((a[j]&bit(i))>>i)<<j;就可以了。
谢谢小哥~
2010-04-06 15:29
快速回复:求教一个数字问题(c编程)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017489 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved