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