设学号后80789-30000后所得的数为NUM,

来源:百度知道 编辑:UC知道 时间:2024/07/02 18:38:16
且NUM在内存中占16位,编制一个把十进制转变为2进制的函数,在main中调用这个函数,把NUM转变为2进制并输出。

#include <stdio.h>
#include <string.h>

void DemiToBin(unsigned long Num,char *cResult)
{
int i = 0;
while(Num > 0)
{
if((Num&1))//若Demi&1==1,则赋给cResult[i] ‘1’,
cResult[i++] = '1';
else
cResult[i++] = '0';
Num = Num >> 1;//右移一位
}
cResult[i] = '\0';
strrev(cResult);//因为是从低位到高位存储的,所以要反转一下字符串
}

int main()
{
long Num;
char cResult[100] = "\0";//存放最后的二进制数
scanf("%ld",&Num);//获取学号
DemiToBin(Num,cResult)//转换;

printf("%s",cResult);//最后二进制结果输出
}