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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuyang 中级黑马   /  2015-1-2 22:04  /  637 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*


思考&实现2:
1)写一个函数把一个10进制数按照二进制格式输出





*/


#include <stdio.h>

/**
*  传递整数n 然后把n转换成二进制,然后输出
*
*  @param n
*/
void changeTo2(int n){

    //计算数的位数
    int len = sizeof(n) * 8;
    //n = 13
    /*
     00000000 00000000 00000000 00001101
                                       |
     00000000 00000000 00000000 00000001
     
     
     //1011000000000000000000000000000000
     //00            ..........         1
     
     */
    int temp;

    for (int i=0; i<len; i++) {
        temp = n;  //每次循环13
        temp = temp>>31-i;   //13>>0   13>>1  13>>2
        //1、让n 右移i
        //2、用n移动i位之后的结果和1进行按位与
        int t = temp & 1;
        printf("%d",t);
        //3、打印与的结果
        
    }

    printf("\n");

}

int main(int argc, const char * argv[]) {
   
    changeTo2(13);
   
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马