一、概念
二、代码
#include <stdio.h>
void printBinay(int value);
int main()
{
#pragma 1.要求定义一个函数,传入一个正式,输出该整数的二进制
/*
%i, %o, %x
0000 0000 0000 0000 0000 0000 0000 1001
*/
int num = 9;
printBinay(num);
return 0;
}
void printBinay(int value)
{
/*
使用按位与 &
任何数和 1 相& 得到的结果还是那个数
0000 0000 0000 0000 0000 0000 0000 1001
&0000 0000 0000 0000 0000 0000 0000 0001
----------------------------------------
// 1.让9的二进制向右移31位,就可以获取到9的最高位的二进制,然后让9的二进制的最高位 和1相与,那么就可以获得9的最高位
// 2.让9的二进制向右移动30位,就可以获取9二进制第二位
// 3.以此类推,直到0位置
技巧
1.任何数 与 1相& 都是那个数
2.利用位移 取出每一位
*/
// 1.定义变量需要右移的位数
int offset = 31;
// 2.通过循环取出每一位
while (offset >=0) {
int result = (value >> offset) & 1;
printf("%i",result);
// 3.每一次取出一位就让控制右移的变量-1
offset--;
if ((offset+1) %4 == 0) {
printf(" ");
}
}
printf("\n");
}
网友评论