黑马程序员技术交流社区
标题:
关于神奇的二进制打印方法
[打印本页]
作者:
wc88212
时间:
2016-7-23 20:42
标题:
关于神奇的二进制打印方法
如题,我们都知道,C语言中,二进制是无法直接打印出来的,但换个思路,还是可以打印的
//int类型
void printbinary(int num)
{
int length = sizeof(num)*8;
for(int i = 0;i<length;i++)
{
if(i!=0&&i%4==0)
{
printf(" ");
}
printf("%d",1&(num>>(31-i)));
}
printf("\n");
}
复制代码
//char类型
void printbinary(char num)
{
int length = sizeof(num)*8;
for(int i = 0;i<length;i++)
{
if(i!=0&&i%4==0)
{
printf(" ");
}
printf("%d",1&(num>>(7-i)));
}
复制代码
思想是任何数&1,都得到的是这个数的补码的二进制形式的最末一位,循环遍历这个数的每一位,并取得每一位的值,得到的就是这个数的二进制的补码形式
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2