黑马程序员技术交流社区

标题: 进制转换 [打印本页]

作者: yuyang    时间: 2015-1-2 22:04
标题: 进制转换
/*


思考&实现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;
}





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