| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:关于二进制转换问题!!求解释!!!
只看楼主 加入收藏
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:4 
关于二进制转换问题!!求解释!!!
#include<iostream.h>
#include<stdio.h>
void printb(int,int);
int main()
{
    int x;
    cout<<"请输入X:";
    cin>>x;
    printb(x,sizeof(int)*8);/*x:整数 sizeof(int):int型在内存中所占的字节数sizeof(int)*8:int型对应的位数*/
    putchar('\n');
    return 0;
}
void printb(int x,int n)
{
    if(n>0)
    {
        putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
        printb(x,n-1);//递归调用,输出x的后n-1位
    }
}


  putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));这句不知道什么意思,求解释。。。。

搜索更多相关主题的帖子: void include return 二进制 
2012-04-15 16:03
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:20 
按位与,看情况应该是有个mask 10000000 00000000 00000000 00000000,与X做&操作,逐个输出各位上的数值0 or 1,然后交由putchar()输出。每输出X的一位,mask右移一位。if(0) then putchar('0'), else putchar('1'),也就是'0'+1。

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-04-15 17:07
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
楼上正解。
2012-04-15 18:38
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
收藏
得分:0 
谢谢两位版主。。。。
2012-04-17 14:02
lyswwr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:124
注 册:2011-7-3
收藏
得分:0 
感谢,我也一直为这问题纠结,终于可松口气了
2012-04-17 21:25
快速回复:关于二进制转换问题!!求解释!!!
数据加载中...
 
   



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

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