黑马程序员技术交流社区

标题: 编写程序实现输出2进制格式的数 [打印本页]

作者: wxh794708907    时间: 2015-7-19 09:29
标题: 编写程序实现输出2进制格式的数
如题,我看视频写出来这个程序 但是运行出来的结果不对 显示都是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;
}

作者:  神马都是浮云    时间: 2015-7-19 10:32
temp>>31-i  你这一句就没有赋值给temp 原来temp是13现在还是13...你应该temp = temp>>31-i
作者: 丁铭检    时间: 2015-7-19 12:05
同上。。。这个貌似是老师的代码。。
作者: wxh794708907    时间: 2015-7-19 13:16
 神马都是浮云 发表于 2015-7-19 10:32
temp>>31-i  你这一句就没有赋值给temp 原来temp是13现在还是13...你应该temp = temp>>31-i ...

谢谢 懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2