马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int y,x,i,num[i];
scanf("%d",&x);
for(i=0;x>=1;i++)
{
y=x%2;
num[i]=y;
x/=2;
}
for(;i>=0;i--)
{
printf("%d",num[i]);
}
getchar();
return 0;
}
这个输入2得6110,输入3得6111,而8得01000,多了个前缀0,这是咋回事啊?自己搞了半天没发现错的地方,唉╮( ̄▽ ̄")╭
#include <stdio.h>
#include <stdint.h>
int main(void)
{
char str[33];
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;
}
|