数值的二进制输出
运用二进制相与方式和递归得到数值二进制结果
本文只涉及到正整数和int型数值范围(0-65534),未涉及到异常字符检测和负数情况,负数的二进制只是用它的绝对值的二进制取反再加1,即为负数二进制结果,由于时间问题,具体实现由读者自己完成!
#include<windows.h>
#include<stdio.h>
int Binary(int &n) //引用节省了函数构造复制的过程,缩短了程序生成时间
{
if (n <= 0 || n >= 65535) //取消而今之前一位的0
{
return -1;
}
int i = 0;
if (n != 0) //二进制与1相与后,递归,倒序输出相与结果
{
i = n & 1;
n = n >> 1;
Binary(n);
}
printf("%d",i);
return 0;
}
int main()
{
printf("请输入要转化为二进制的数字:\n");
int x=0 ;
scanf("%d", &x);
printf("要转化的数值为:%d\n",x);
if (x <0 || x >= 65535) //限制要转换的数值不能为负并且不能大于int型数值范围65534
{
printf("输入数字超出范围!");
printf("\n");
system("pause");
return -1;
}
if (x == 0)
{
printf("转换后的二进制位为0\n");
system("pause");
return 0;
}
printf("\n");
printf("转换后的二进制位为:");
Binary(x);
printf("\n");
system("pause");
return 0;
}