A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题,我看视频写出来这个程序 但是运行出来的结果不对 显示都是1和结果不一样,不知道哪里出错了 代码如下 高手求解答
#include <stdio.h>
/*
传递整数n,用二进制表示
*/
void changeTo2 (int n) {
    int len =sizeof(n)*8;//获取位数;
    int i ;
    int temp ;
    for (i=0;i<len;i++){
       temp = n ;       //每次循环n这个数;
       temp>>31-i;      //依次右移31位 30位..... ;
       int t =temp & 1; //用temp与1进行与操作获取每一位数;
       printf("%d",t);
    }
}

int main(){
  changeTo2(13);

  return 0;
}

3 个回复

倒序浏览
temp>>31-i  你这一句就没有赋值给temp 原来temp是13现在还是13...你应该temp = temp>>31-i
回复 使用道具 举报
同上。。。这个貌似是老师的代码。。
回复 使用道具 举报
 神马都是浮云 发表于 2015-7-19 10:32
temp>>31-i  你这一句就没有赋值给temp 原来temp是13现在还是13...你应该temp = temp>>31-i ...

谢谢 懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马