新手求助 在程序中间补充什么可以是十进数转换为二进数
#include <stdio.h>void print_binary(unsigned int n) {
//在这里补充
}
int main(void) {
unsigned int num;
scanf("%d", &num);
print_binary(num);
return 0;
}
就是将176=10110000 首先你要了解十进制转二进制的方法 本帖最后由 风过无痕1989 于 2020-10-7 11:13 编辑
// 将十进制数转换成二进制数
#include <stdio.h>
void print_binary(unsigned int n)
{
int i,a = {0},b = {0};
for (i = 0;i < 8;i++)
{
if (n >= 2)
{
a = n % 2;
n /= 2;
}
else
{
a = n;
break;
}
}
for (i = 0;i < 8;i++)
{
b = a; // 调换成正常的二进制高低位
}
// 若输入为有符号数,则加上下面注释这一段
/* if(n >0)
{
a = 1; // 若输入为正数,最高位为 1
}
else
{
a = 0; // 若输入为负数,最高位为 0
}
*/
for (i = 0;i < 8;i++)
{
printf("%d",b);
}
printf("\n");
}
int main(void)
{
unsigned int num;
scanf("%d", &num);
print_binary(num);
return 0;
} 得到满意答案没?还有什么不懂的,说出来,我们会帮你的 乐乐学编程 发表于 2020-10-8 22:03
得到满意答案没?还有什么不懂的,说出来,我们会帮你的
可能是他没有明白我中间注释的那一段,拿着我的程序运行套他的:176 <==> 10110000 呢
而我的程序运行后:176 <==> 00110000 ,原因是他在主函数定义了无符号数 unsigned int num; 故而,我将最高位的符号位注释掉了 这回明白了没有?
页:
[1]