| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖, 1 人收藏
标题:请大家指教下这段代码!!谢谢
只看楼主 加入收藏
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
结帖率:95.24%
收藏(1)
已结贴  问题点数:4 回复次数:5 
请大家指教下这段代码!!谢谢
#include <stdio.h>
int main(){
char b[32];
int n, t, k, i;
while (scanf("%d", &t) == 1){
   if (t == 0){
    printf("0\n0\n");
    continue;
   }
   n = t; k = 0;
   while (n > 0){
    b[k++] = n&1;(关键是这俩符号没看懂)
    n >>= 1;
   }
   for (i=k-1; i>=0; --i){
    printf("%d", b[i]);
   }
   printf("\n");
   n = t; k = 0;
   while (n > 0){
    b[k++] = n&7;(这里 谢谢)
    n >>= 3;(这里 谢谢)
   }
   for (i=k-1; i>=0; --i){
    printf("%d", b[i]);
   }
   printf("\n");
}
return 0;
}
搜索更多相关主题的帖子: include continue 谢谢 
2013-05-03 23:53
业余爱好者
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2013-4-23
收藏
得分:0 
n&1  是n的二进制代码和1的二进制代码 进行&运算  n>>=3 是n的二进制代码向右移三位 左边的 空位用0补
2013-05-04 00:01
Juson
Rank: 4
等 级:业余侠客
帖 子:70
专家分:235
注 册:2013-4-8
收藏
得分:2 
while (n > 0){
    b[k++] = n&1;   // n&1是取n的二进制形式的最低位,n>>1 是向右边移一位,这个循环的意思是分别取出n的二进制形式的各个位上的数然后存储到数组b中
    n >>= 1;
   }

 while (n > 0){
    b[k++] = n&7;      // n&3是取n的二进制形式的低三位,n>>3 是向右边移三位,这个循环的意思是每次取出n的二进制形式的三个位上的数,然后存储到数组b中
    n >>= 3;
   }
2013-05-04 00:15
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:2 
  n = t; k = 0;
   while (n > 0){
    b[k++] = n&1;
    n >>= 1;
   }
    /*这段代码的意思是将n转换成二进制,二进制的每一位存储到b[k]中*/
   for (i=k-1; i>=0; --i){
    printf("%d", b[i]);
   }
   printf("\n");
/*输出n对应的二进制形式*/
   n = t; k = 0;
   while (n > 0){
    b[k++] = n&7;
    n >>= 3;
   }
/*这段代码的意思是将n转换成八进制,八进制的每一位存储到b[k]中*/
2013-05-04 06:22
曼陀罗的演绎
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2013-4-25
收藏
得分:0 
貌似 很不错哦 围观一下
2013-05-04 09:59
Han_FlyB
Rank: 6Rank: 6
等 级:侠之大者
帖 子:143
专家分:424
注 册:2013-3-25
收藏
得分:0 
楼主可以看一下位操作
2013-05-04 12:27
快速回复:请大家指教下这段代码!!谢谢
数据加载中...
 
   



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

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