【发布时间】:2012-04-10 18:45:33
【问题描述】:
我正在尝试学习如何将整数转换为二进制。它运行但这是输出:输入数字:33 新值:16 余数:1 当前值:-17 计数器:1
感谢您的帮助。谢谢你。好的,我很抱歉我的不好。输出应该是:00100001
#include <stdio.h>
int main()
{
int nv, r, num;
printf("Enter a number: ");
scanf("%d",&num);
int counter=0;
while(num>=0)
{
nv=num/2;
r=num%2;
num=-(nv+r);
counter++;
printf("New Value: %d\n",nv);
printf("Remainder: %d\n",r);
printf("Current Value: %d",num);
}
printf("Counter: %d\n",counter);
}
【问题讨论】:
-
您到底想打印什么?我的意思是,“转换为二进制”一开始就含糊不清,但是您也有四个输入输出,这使得您完全不清楚您想要什么。 input=33 的输出应该是什么?我的意思是,我能想到的只有
00000000000000000000000000100001。 -
是的,先生。我已经添加了另一条评论来解释。是的,应该是输出 => 00100001。谢谢
-
不,我的意思是您打印的所有其他内容;他们应该是什么?另外,为什么是8个二进制数字?这不适用于超过 255 的数字。而且我看不出你试图在哪里打印 8 个二进制数字。
标签: c binary type-conversion