| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 472 人关注过本帖
标题:帮忙解释下下面的代码
只看楼主 加入收藏
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
帮忙解释下下面的代码
程序代码:
    int i=16,j=0;
    while( i-- > 0)
    {
        if(I &(1 << i))
            a[j++]='1';
        else if('1'==a[0])
            (a[j++]='0');
    }
    a[j]='\0';
主要功能是十进制换成二进制,关于中间的位运算和<<看不太懂
2012-05-29 20:27
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
1<<i就是把1左移i位,这样再作&按位与运算就是相当于从右到左,逐个判断对应位是否是1了

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-05-30 06:26
马亚杰
Rank: 2
来 自:甘肃.天水
等 级:论坛游民
帖 子:38
专家分:43
注 册:2012-3-9
收藏
得分:0 
不会.

喜欢电脑的疯子.
2012-05-30 07:58
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 2楼 pauljames
这里的I是十进制数,那I与1做按位与运算是怎么样的?
2012-05-30 11:00
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你先查什么叫进制

总有那身价贱的人给作业贴回复完整的代码
2012-05-30 11:53
never_yzq
Rank: 4
等 级:业余侠客
帖 子:112
专家分:213
注 册:2012-5-25
收藏
得分:0 
2楼说错了,1<<i是右移,其他的都好说!
2012-05-30 20:57
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 6楼 never_yzq
你能分清左右吗?
2012-05-30 22:08
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 6楼 never_yzq
呵呵,你平时拿左手写字的吧?说话一定要谨慎啊

重剑无锋,大巧不工
2012-05-30 22:13
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
收藏
得分:20 
while( i-- > 0)
    {
/* 假设 I = 255
   I的二进制 为  0000000011111111
   第一次  i = 16   
   1 也是要双字节表示把
   那么  1 << 16   1表示出来的 就是1000000000000000
   I & (1 << i)  就是  0000000011111111 & 1000000000000000 =  0000000000000000 (也就是0)
   if(I &(1 << i))  =  if(0) 为假  做if('1'==a[0])//这条件检测是  检测数组是否为0  不为0做(a[j++]='0'); 为0什么也不做
  
*/
        if(I &(1 << i))      
            a[j++]='1';
        else if('1'==a[0])         
            (a[j++]='0');
    }  
2012-05-30 22:41
快速回复:帮忙解释下下面的代码
数据加载中...
 
   



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

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