M
M. Azam
I thought this should work but it doesn't. When bin is passed argument
251 it get converted in to -5. If I changed bin to take an int, it works
fine. I was expecting it to work even with char, since 251 is less than
the max a char can handle. Why it is not working? Thanks.
#include<stdio.h>
void bin(char n) {
printf("n = %d\n", n);
if (n!=0) {
printf("%d",n%2);
bin(n/2);
}
printf("\n");
}
main() {
unsigned char val = 4;
printf("%d: ", val);
bin(val);
val = ~ val;
printf("%d: ", val);
bin(val);
}
251 it get converted in to -5. If I changed bin to take an int, it works
fine. I was expecting it to work even with char, since 251 is less than
the max a char can handle. Why it is not working? Thanks.
#include<stdio.h>
void bin(char n) {
printf("n = %d\n", n);
if (n!=0) {
printf("%d",n%2);
bin(n/2);
}
printf("\n");
}
main() {
unsigned char val = 4;
printf("%d: ", val);
bin(val);
val = ~ val;
printf("%d: ", val);
bin(val);
}