标题:求助,关于一个探测光子程序的小步骤
只看楼主
sunethz2012
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-27
结帖率:100%
已结贴  问题点数:5 回复次数:6 
求助,关于一个探测光子程序的小步骤
我们用仪器来探测光子,仪器会给一个32位的2进制数,前四位是它的channel信息,就是从哪个通道过来,后28位是光子本身的时间信息。
我想用时间复杂度最少的办法,把32位中的前4位和后28位分离开,分别存入其他变量,怎样才能用时比较少啊,光子探测对时间要求很高。谢谢帮助。
麻烦说详细点,c语言我3年没用了,有点不熟悉了。
搜索更多相关主题的帖子: 通道 光子 
2012-09-27 15:13
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
unsigned b4, b28;
b4  = (unsigned)photon >> 28;
b28 = photon & 0x0FFFFFFF;

My life is brilliant
2012-09-27 15:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
貌似就是俩移位 这个的时间复杂度是O(n)?
2012-09-27 15:56
sunethz2012
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-27
得分:0 
回复 2楼 lz1091914999
>>这个时间复杂度很低吗?因为一大堆数据
2012-09-27 16:04
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
联合体

总有那身价贱的人给作业贴回复完整的代码
2012-09-27 16:57
sunethz2012
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-27
得分:0 
回复 5楼 embed_xuel
求详情
2012-09-27 17:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:5 
回复 6楼 sunethz2012
定义一个联合体,里面有两个成员,一个是unsigned int类型,32位的,另一个成员是结构体,结构体里有两个成员,都是unsigned int类型,并且用位字段,一个是四位,一个是二十八位,举个例子 伪代码:
union light
{
    struct
    {
         unsigned int channel:4;
         unsigned int timeinfo:28;
    }bf;
    unsigned int wrd;
};

定义一个联合体变量,light unReadData ;
仪器会给一个32位的2进制数,赋值给unReadData.wrd,channel号直接取unReadData.bf.channel, 时间信息直接取unReadData.bf.timeinfo就可以了。注意,位字段需要注意大尾端和小尾端的区别

总有那身价贱的人给作业贴回复完整的代码
2012-09-28 09:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382203-1-1.html




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

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