Napsal jsem program, který změní unsigned int do binární. Ve své funkci jsem se používat funkce malloc (). Přemýšlel jsem, jestli tam byl způsob, jak to udělat bez malloc().
#include <stdio.h>
#include <stdlib.h>
char *toBinary(unsigned n);
int main(void) {
int n;
printf("Enter an integer to convert: ");
scanf("%d",&n);
char* binary = toBinary(n);
printf("%s",binary);
return 0;
}
char* toBinary(unsigned n) {
char* binary = (char*)malloc(sizeof(char) * 16);
int j = 0;
unsigned i;
for (i = 1 << 16; i > 0; i = i / 2) {
if(j == 8)
binary[j++] = ' ';
else
binary[j++] = (n & i) ? '1' : '0';
}
binary[j]='\0';
return binary;
}
~
unsigned short
->unsigned int
.unsigned n
je ekvivalentní kunsigned int n