定义函数void DecToBin(int a, char b[33]); 函数功能是将整数a转换为它对应的32位二进制机器数,将32位二进制机器数以字符串形式存于字符数组b(以'\0'字符结束)。
比如:a=160,则函数调用结束后,b数组存储的串为"00000000000000000000000010100000";
a=-1,则函数调用结束后,b数组存储的串为"11111111111111111111111111111111";
从键盘输入一个整数a,调用该函数,然后输出存储于b数组的表示二进制机器数的字符串。
输入提示信息、输入与输出格式自拟。
要求:不允许使用%2运算,只能利用位运算符(如:移位运算,与运算等)实现程序功能。
程序源代码:
#include <stdio.h>
void DecToBin(int a, char b[33]);
int main(void)
{
int a;
printf("请输入一个整数:\n");
scanf("%d", &a);
char b[33] = { '0' };
DecToBin(a, b);
puts(b);
return 0;
}
void DecToBin(int a, char b[33])
{
int i;
b[32] = '\0';
for (i = 31; i >= 0 ; i--, a >>= 1) {
b[i] = (1 & a) + '0';
}
return;
}