自己编写的十进制转二进制,有问题却照不出来啊
#include<stdio.h>int main()
{
int y,x,i,num;
scanf("%d",&x);
for(i=0;x>=1;i++)
{
y=x%2;
num=y;
x/=2;
}
for(;i>=0;i--)
{
printf("%d",num);
}
getchar();
return 0;
}
这个输入2得6110,输入3得6111,而8得01000,多了个前缀0,这是咋回事啊?自己搞了半天没发现错的地方,唉╮( ̄▽ ̄")╭ int y,x,i,num;
num 有多少个元素?
有 i 个元素?
那么 i 等于几?
int num 进行初始化的时候没有指明i的长度 人造人 发表于 2018-6-4 15:53
有 i 个元素?
那么 i 等于几?
因为无法确定输入的数变为2进制会是几位,就这样写了。
而且我记得数组可以是num[ i ]这样啊。
我现在有点蒙{:10_266:},容我缓缓 三千芳华 发表于 2018-6-4 16:10
因为无法确定输入的数变为2进制会是几位,就这样写了。
而且我记得数组可以是num[ i ]这样啊。
我现 ...
的确可以这样写,但前提是 i 的值是确定的
人造人 发表于 2018-6-4 16:13
的确可以这样写,但前提是 i 的值是确定的
我这个该咋改?{:10_282:}想不出办法了 三千芳华 发表于 2018-6-4 16:25
我这个该咋改?想不出办法了
#include <stdio.h>
#include <stdint.h>
int main(void)
{
char str;
char *p = str;
uint32_t num;
scanf("%u", &num);
for(uint32_t mask = 0x80000000; mask != 0; mask >>= 1)
{
if(mask & num)
*p++ = '1';
else
*p++ = '0';
}
*p = '\0';
p = str;
while(*p == '0')
++p;
while(*p != '\0')
putchar(*p++);
printf("\n");
return 0;
}
人造人 发表于 2018-6-4 16:47
看来我还有得学{:10_324:},现在就我这实力砸破脑子都想不出来这样干
页:
[1]