вы должны проверить, какой из ваших переменных не хватает space
для хранения ваших чисел. Я проверил и увидел, кроме bNum
, что другим вашим переменным, таким как i
, не хватает места:
посмотрите на это
unsigned long long int dec(int num) {
unsigned long long int bNum = 0,i = 1;// i should be unsigned long long
long int remNum, highNum = 32768;//highNum is better to be long int
while (num != 0) {
remNum = num / highNum;
remNum = num % 2;
num /= 2;
bNum = bNum + remNum * i;
i = i * 10;
}
return bNum;
}
и в вашем main
проверьте, где вы храните возвращенный номер:
int main()
{
unsigned long long int r;
int a;
scanf("%d", &a);
r = dec(a);
}