The following program converts an entered integer to it's equivalent binary representation
#include <stdio.h> #define SIZE 8*sizeof(int) int int2bin(int, char*); int print_bstr(const char*); int error(); int main() { int number; char bstr[SIZE]; while(1){ printf("\nEnter the number "); scanf("%d", &number) ? int2bin(number, bstr) : error(); print_bstr(bstr); } } int int2bin(int num, char* bstr) { int i; for(i = SIZE - 1; i >= 0 ; --i, num >>= 1) { bstr[i] = (0x1 & num) + '0'; } bstr[SIZE] = '\0'; } int print_bstr(const char* bstr) { int i = 0; while(bstr[i]) { putchar(bstr[i++]); if(i % 8 == 0 && bstr[i]) putchar(' '); } } int error() { printf("Error: non-numeric data entered. Exiting"); exit(-1); }
Program Output
No comments:
Post a Comment