1.编一程序用递归函数,把输入的一个十进制整数转换成二进制数输出
#include
void f(int n)
{
if(n) f(n/2);
else return;
printf("%d",n%2);
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");
}
return 0;
}
另一种:
#include
void f(unsigned int n)
{
if (n==0) return;
f(n>>1);
putch((n&1)+'0');
}
int main()
{
int n;
scanf("%d",&n);
if(n==0) printf("0");
f((unsigned int)n);
printf("\n");
}
将用户输入字符串转化2进制并输出
第一步:用强制类型转换成int或者long
第二步,这时候有2种方法
①.使用位移操作符“<<”和“>>”,这个就很简单了,
总共要移动的次数 = sizof(int或者long) * 8;
移位的时候做个判断,移出来是‘1’就输出1,否则输出0;
这种方法适合于很大的数字。要注意高位有时候是无意义的0.不用输出
②.根据我们最熟悉的十进制转二进制的原理编程。设强制转换后的数为x;
则循环
do
{
cout << x%2;
x=x/2;
}while(x != 1)
这里不要忘了补一个最后一位
cout< 一个完整的二进制就输出完了,不过顺序是倒着的而已。
这个方法适合于相对小的数字
itoa可以转换为二进制的字符串。具体可以看下面的程序:
#include
# includ
void main()
{
char input[255];
char output[255][8];
int i=0;
scanf("%s", input);
for(i=0;i {
itoa(input[i],output[i],2);
printf("%s",output[i]);
}
}
#include
void f(int n)
{
if(n) f(n/2);
else return;
printf("%d",n%2);
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");
}
return 0;
}
另一种:
#include
void f(unsigned int n)
{
if (n==0) return;
f(n>>1);
putch((n&1)+'0');
}
int main()
{
int n;
scanf("%d",&n);
if(n==0) printf("0");
f((unsigned int)n);
printf("\n");
}
将用户输入字符串转化2进制并输出
第一步:用强制类型转换成int或者long
第二步,这时候有2种方法
①.使用位移操作符“<<”和“>>”,这个就很简单了,
总共要移动的次数 = sizof(int或者long) * 8;
移位的时候做个判断,移出来是‘1’就输出1,否则输出0;
这种方法适合于很大的数字。要注意高位有时候是无意义的0.不用输出
②.根据我们最熟悉的十进制转二进制的原理编程。设强制转换后的数为x;
则循环
do
{
cout << x%2;
x=x/2;
}while(x != 1)
这里不要忘了补一个最后一位
cout<
这个方法适合于相对小的数字
itoa可以转换为二进制的字符串。具体可以看下面的程序:
#include
# includ
void main()
{
char input[255];
char output[255][8];
int i=0;
scanf("%s", input);
for(i=0;i
itoa(input[i],output[i],2);
printf("%s",output[i]);
}
}
C语言——判断一个字符串
中国结的源承艺祈

2009/06/14 10:51 | by 
