孩子大一,救救孩子
uj5u.com熱心網友回復:
僅供參考:#include <stdio.h>
void print_bin(unsigned int d)
{
if(d < 2) printf("%d", d);
else
{
print_bin(d / 2);
printf("%d", d % 2);
}
}
int main(void)
{
unsigned int d;
scanf("%d", &d);
print_bin(d);
return 0;
}
uj5u.com熱心網友回復:
#include <stdio.h>
#include <string.h>
int get_binary(unsigned long long n, char *binary)
{
int k = 0;
while (n) {
binary[k++] = n % 2 + '0';
n /= 2;
}
binary[k] = 0; //for '\0'
return k;
}
static void reverse_binary(char *buf, int len)
{
int i;
char ch;
for (i = 0; i < len/2; i++) {
ch = buf[i];
buf[i] = buf[len-i-1];
buf[len-i-1] = ch;
}
}
int main(void)
{
unsigned long long num;
int len;
char binary[64]/*, *str = "111011100110101111000100010000"*/;
scanf("%llu", &num);
len = get_binary(num, binary);
reverse_binary(binary, len);
//printf("%d\n", strlen(str));
puts(binary);
return 0;
}
供參考~
用unsigned long就能滿足條件了。
uj5u.com熱心網友回復:
非常感謝二位uj5u.com熱心網友回復:
非常感謝,真棒
uj5u.com熱心網友回復:
非常感謝,真棒
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/233700.html
標籤:C語言
