跪求帮忙 C语言

来源:百度知道 编辑:UC知道 时间:2024/06/11 15:22:01
#include<stdio.h>
#include <stdlib.h>
int main( )

{
int i=0,j,a,num[20];

printf("please input the number:");

scanf("%d",&a );
while(a!=0)
{
num[i++]=a%2;
a=a/2 ;
}
printf("\nthe binary is:");
for(j=i-1;j>=0;j--)
{ printf("%d",num[j]); }

system("pause");
return 0;
}
请问大侠们 用这个如何自定义函数f去表示 因为我要提取转变后的2进制的结果和 11110000 做&运算 实在不会 请指点迷津

不是吧,你直接用a(没有变成2进制之前的a)与240(即11110000)求与,不更好么?
只要一句话:
int c;
c=a&240;
如果想得到2进制表示,再把c用你上面的办法,化成2进制.

做位与操作不一定先要转换成2进制的,直接2个数&就是了,把位与的结果再用2进制表示
#include<stdio.h>
#include <stdlib.h>
int main( )

{
int a;
char num[20];

printf("please input the number:");

scanf("%d",&a );
a = a&240;
itoa(a, num, 2); //利用转换字符串函数按2进制转换
printf("\nthe binary is: %s\n",num);

system("pause");
return 0;
}

这个题目主要考察符号位的处理.