Я пытаюсь преобразовать десятичное число в двоичное число.
У вас есть идеи, почему у меня "сбой запуска"?(Я думаю, что рядом с моей функцией scanf есть ошибка).
PS: я знаю, что алгоритм этой программы еще не работает, но я хотел сначала попытаться скомпилировать.Но я открыт для любых предложений ^^
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/**
* Uebung 1.3 - C Teil
* Programm, welches eine Integer-Zahl in Binärdarstellung ausgibt.
*/
#define DEBUG 1
/** Structure of a binary Value */
typedef struct{
int size;
int* valueInBin;
int valueInDec;
}Wert;
/** Global variables */
//nothing
/** Functions declarations */
void iToBinary(Wert* w);
void printBinaryValue(Wert w);
/** Main function */
int main(int argc, char** argv) {
/* Local variable*/
Wert myVal;
printf("Wert als Integer (auch negativ): ");
scanf("%d", &(myVal.valueInDec));
DEBUG ? printf("Mein Wert : %i", myVal.valueInDec):printf("");
myVal.size = sizeof(int)*8;
DEBUG ? printf("size: %i", myVal.size):printf("");
iToBinary(&myVal);
printBinaryValue(myVal);
return (EXIT_SUCCESS);
}
void iToBinary(Wert* w){
int i,temp = w->valueInDec;
w->size = sizeof(w->valueInDec)*8;
w->valueInBin = (int*) malloc(sizeof(int) * (int)(w->size)) ;
for(i=w->size-1; i>=0; i++){
if(temp > pow(2,i)){
*((w->valueInBin)+i) = 1;
}
else{
*((w->valueInBin)+i) = 0;
}
}
}
void printBinaryValue(Wert w){
unsigned int i;
printf("My int in bin : ");
for(i=0; i<w.size; i++){
printf("%i",(*(w.valueInBin)+i));
}
}